ReadOnly is read from storageCollection
Postpose button for invitations

* show postpone button
* handle postpone -> only store event in calendar
* add test for postpone
Added utils for cached version for thatIsMe and allEmails
Used cached version of thatIsMe and allEmails
Used cached version of thatIsMe
Filter out new invitatins and declined events from etmcalendar.

invitations and declined events are available over a search collection,
so we don't want to show them in normal calendars.

Kolab: #3549
ICalFormat: Introduce incidence parsing that ignores timezoneinformation.

This is orders of magnitudes faster when used in the akonadi serializer,
and uses a lot less memory (from 500mb to 100 for 10k events).
KCalCore: event::isMutliDay was never using the cache

mostly it is called with no argument, so spec is invalid

* most of the time was spent in KDateTime.addSecs(-1), it is a realy
  rarce case, that this second is import.

Solution: Test if the second can be important before executiing time
intensive function.

~5% performance boost
Akonadi::Calendar: Using CalendarUtilits::incidence

this is ~twices as fast as using hasPayload + payload
calfilterpartstatusproxy: alendarUtilits::incidence

(merge with fd0b82b0 for kdepimlibs master)
Implement ldap search in calendar selection

KOLAB: #3543

(needs rebuildung kolab resource and baloo)
Fixed build.
ItemSync/TransactionSquence: Don't abort on error

The ItemSync must never emit result before it's complete. This patch fixes
this behvaiour in case of an error on the ItemCreateJob.

* Adding a job does not reset the status if a rollback was initiated already,
and thus avoids a second rollback on commit() after one was already performed
earlier (this resulted in the "No transaction in progress" error message).
* The rollback job, that is equally added using addSubjob still gets regularly
executed.
Monitor: handle correctly situation when item no longer exists on server

This can happen when item is removed on the server, but we only now got to
actually process the notification.
Always assume someoneWasListening when we get invalid notification in emityNotification()

When we get invalid entry from EntityCache in emitNotification(), we don't
emit the notification (because we don't have any item to emit it on) and
instead just skip it silently. This change makes sure that we set
someoneWasListening to true (even though we don't know if someone was really
listening), so that we avoid calling cleanOldNotifications() later, because
it's rather expensive.
Monitor: don't try to compress new notifications

The server has performed all compressions already (currently that means it only
compressed Collection Modify notifications), so there's no need to iterate over
the (potentially very long) queue of notifications again in each client.