support for sync-collection report

For supporting sync-collection report, override `HttpManagerBuilder.buildProtocolHandlers` to add `SyncCollectionReport`:
```
webDavProtocol.addReport(new SyncCollectionReport(webDavProtocol.getPropertySources(), propFindXmlGenerator));
```

In order `Resource`s to support sync-collection, need to implement `SyncCollectionResource` which has two methods:
- `URI getSyncToken()`: sync-token to respond.
- `Map<String, Resource> findResourcesBySyncToken(URI syncToken)`: search for changed resources since sync-token, and return Map of href -> Resource. Deleted resources must be included in the Map as `RemovedResource` subclass.