iCalendar class package (per [2445]).

Defines objects to represent iCalendar data stream objects.

Naming:

- Component classes ending "Comp" are abstract, base classes.
- Component classes not ending in "Comp" represent the corresponding iCalendar components.
- Exceptions to the preceding two items are `XComp` and `IANAComp`.
- Property classes ending in "Prop" are abstract, base classes.
- Property classes not ending in "Prop" represent the corresponding iCalendar properties.
- Exceptions to the preceding two items are `XProp` and `IANAProp`.
- All parameter classes end in "Param" (both base classes and those repesenting iCalendar parameters).
- All exception classes end in "Exception" and are derived from or are `ICalendarException`.

Other Classes:

- `Collectible` is the interface implemented by `Component`, `Property`, `Parameter`, and `Collection`.
- `Collection` is the base class for `Components`, `Properties`, and `Parameters`.
- `ClassVector` defines the class method `contains()` that is used now and is the class that will eventually replace the Vector instances used for allowed-member lists.
- `Config` is mostly (but not exclusively) concerned with setting up the name-to-class lookup maps.
- `Names`, `Strings`, `Utilities`, and `XNames`. define constants and utilities.

For classes whose documentation has a Spec section:

section: | corresponding section of [rfc]
occurs: | in what context may occur (in what quantities)
datatypes: | datatypes allowed (in what quantities)
default: | default value
allowed: | allowed values; e.g. for enumerated values
params: | parameters allowed (in what quantities) (implicit parameters*)
props: | allowed properties (in what quantities)
comps: | allowed components (in what quantities)

* Implicit params are those that cannot be set directly, but will be added to the object's parameter list and will be output when object is converted to some form of string.
(not all items will be present and form may vary from changing style).

e.g. for the DTEnd property:

    Spec:
      section:	4.8.2.2 [2445]
      occurs:	VEVENT (0-1)
      datatypes:	DATE-TIME, DATE (1)
      default:	---
      allowed:	---
      params:	(VALUETYPE(0-1)), TZID(0-1), xparam(0+)