Add event_uid field, with index, to be used for ical sync

The ical spec requires a UID field to be set for syncing [1], the
recommended format is a UID specific to the host followed by "@" and
the host domain.

Note: this work was cancelled mid-flight because of a change in
requirements, it doesn't do much yet and is probably broken.

The idea was to set the event_uid on import. When syncing, an existing
event with the same event_uid could have it's fields updated to match
the current values in the ical feed.

1. http://www.kanzaki.com/docs/ical/uid.html
ical importer: update existing events, and only add new events when importing
Merge branch 'master' into ical-sync
ical importer: performance enhancement (thanks @thet)
Add catalog indexes in the setuphandlers instead of using GS

Thanks to @thet for pointing out that using the Generic Setup
catalog.xml would cause the index to be cleared every time the profile
is imported and for recommending this approach instead.
AT: add eventUid field for ical syncing
use catalog to query for existing events with the same event_uid
merge from master
register event_uid_indexer only for IDXEventUID contents
export event uid
Add event_uid field to ATEvent and IEventBasic and an index, which is used
  for icalendar data exchange and synchronisation
mege from master