Prevent processing of collections from inactive principals

e.g. inactive principal collections are not returned if you use clients with
"delegation" support.
Extend $c->default_collections - adding 'calendar_components' and 'default_properties'

'calendar_components' sets the
'urn:ietf:params:xml:ns:caldav:supported-calendar-component-set' property for
the calendar collection (used to distinguish between different type of calendar
collections, for example: todo and event calendars) the value must be a
non-empty array; allowed values: 'VEVENT', 'VTODO', 'VJOURNAL', 'VTIMEZONE',
'VFREEBUSY', 'VPOLL', 'VAVAILABILITY'
for example:
  array('VEVENT')
  array('VTODO')
  array('VEVENT', 'VTODO')
  null or undefined => all default calendar components are supported - see
    $c->default_calendar_components
NOTE: if you want to change the value of this property later, you need to do
it directly in the database ("property" table) or in the client software!

'default_properties' sets custom properties for the collection in the
"property" table the value must be a non-empty associative array of
key => value pairs (key = property name, value = property value) for example
(set the calendar color property used by Apple and other clients):
  'default_properties' => array('http://apple.com/ns/ical/:calendar-color'=>'#ff0000'),
   null or undefined   => no property is stored in the database
NOTE: if you want to change the value of this property later, you need to do
it directly in the database ("property" table) or in the client software!
fix to rename/delete the collection properties during the collection renaming/deleting
fix of major todo synchronization issue if $c->hide_older_than option is set

todo without start date was never synced
fix for $c->hide_TODO processing and user-agent extension

new option: if set to PHP regex string then hide_TODO is enabled if the client
user-agent string matches the regex for example:
    $c->hide_TODO='#^iOS.*dataaccessd.*#';
will hide all todos from non-owner/non-admin users for iOS devices