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 ..)

Not sure. The comment in processETags says that Yahoo sometimes answers the *initial* request with an authentication error. The request which is handled here is already the second request in case of quick sync mode, so I added this to the if clause. I don't use Yahoo, so I cannot say if this is a sensible solution.