Refactor Report class, move processing of ETags to NotebookSyncAgent

Moving processETags into NotebookSyncAgent improves the separation between networking code and the synchronization algorithm. Moreover, this allows the reuse Report for additional REPORT requests. 

Additionally, this commit moves code shared by the getAllEvents, getAllETags and multiGetEvents methods to sendCalendarQuery and sendRequest.

This pull request contains some of my work on improving support for synchronization with Owncloud. While not really necessary (it would suffice for me to make multiGetEvents public to be able to send an additional request), I believe the refactoring makes the code clearer and easier to understand. (It would also be convenient for me to have this in master as I would have to rework my fixes otherwise ..)

It seems to be just the initial request that is sometimes rejected. It would be preferable to avoid this workaround but this needs more investigation with the yahoo servers.