Use correct URI for DELETE requests.

We cannot use incidence.customProperty("buteo", "uri") since the storage backend removes all custom properties from deleted incidences. We also cannot use its UID as there is, in general, no correlation between the UID of an incidence and its URI on the server.

However, we only DELETE an incidence if it is still on the server, and all locally deleted incidences which are still on the server are downloaded by fetchRemoteChanges. Therefore we can determine the URI by searching mReceivedCalendarResources for the deleted incidence.
mReceivedCalendarResources contains the incidences which have been selected for download by processETags. These are all remote incidences which are not in the local mkcal storage (newly added on the server or *deleted locally*), and all incidences for which the etag has changed (modified on server).

The lists of additions, modifications and deletions from libsocialcache are only needed in discardRemoteChanges: Remote changes which have been synced to the local storage will show up during the next sync as local changes since we always ask for changes since the *starting* time of the last sync. (I guess this is done to ensure that no local modifications are lost which are made during an active sync.) To be able to identify these fake changes, remote changes are not only applied to the mkcal storage, but are also saved separately in the libsocialcache database. (Only for the last sync, not the full history.)