Calendar Access Protocol data object package (per [CAP]). Primarily based on a mix of drafts 09 and 10; though some classes may reflect earlier drafts.

Extends icalendar, adding objects needed for CAP.
Note: only implements a subset and not enough to even be compliant with [CAP].

Naming:

- Component classes ending "Comp" are abstract, base classes.
- Component classes not ending in "Comp" represent the corresponding CAP components.
- Property classes ending in "Prop" are abstract, base classes.
- Property classes not ending in "Prop" represent the corresponding CAP properties.
- All parameter classes end in "Param" (both base classes and those repesenting CAP parameters).
- All exception classes end in "Exception" and are derived from or are `CAPException`.

Other Classes:

- `Config` is mostly (but not exclusively) concerned with setting up the name-to-class lookup maps.
- `Names`, `Strings`, and `Utilities` define constants and utilities.

For classes whose documentation have 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)
props: | allowed properties (in what quantities)
comps: | allowed components (in what quantities)

(not all items will be present and form may vary from changing style).

e.g. for the NAME property:

    Spec:
      section:	8.23 [CAP-10]
      occurs:	(0+)
      datatypes:	TEXT (1)
      default:	---
      allowed:	---
      params:	LANGUAGE(0-1), ianaparam(0+), xparam(0+)