support for sync-collection report

Collection Synchronization for WebDAV: https://tools.ietf.org/html/rfc6578

For supporting sync-collection report, override `HttpManagerBuilder.buildProtocolHandlers` to 
- add `SyncCollectionReport` to webDavProtocol
- add `StandardProperty` for sync-token to webDavProtocol's `PropertyMap`

Full example code from my project:
```
package milton_patch;

import java.net.URI;

import io.milton.ent.config.HttpManagerBuilderEnt;
import io.milton.http.report.SyncCollectionReport;
import io.milton.http.webdav.PropertyMap;
import io.milton.http.webdav.ResourceTypeHelper;
import io.milton.http.webdav.WebDavResponseHandler;
import io.milton.resource.PropFindableResource;
import io.milton.resource.SyncCollectionResource;

public class MyHttpManagerBuilder extends HttpManagerBuilderEnt {

  @Override
  protected void buildProtocolHandlers(WebDavResponseHandler webdavResponseHandler, ResourceTypeHelper resourceTypeHelper) {
    super.buildProtocolHandlers(webdavResponseHandler, resourceTypeHelper);
    
    webDavProtocol.addReport(new SyncCollectionReport(propFindPropertyBuilder(), propFindXmlGenerator));
    
    webDavProtocol.getPropertyMap().add(new PropertyMap.StandardProperty<URI>() {
      public String fieldName() {
        return "sync-token";
      }

      public URI getValue(PropFindableResource res) {
        if (res instanceof SyncCollectionResource) {
          return ((SyncCollectionResource) res).getSyncToken();
        } else {
          return null;
        }
      }
 
      public Class getValueClass() {
        return URI.class;
      }
    });
  }
  
}
```

In order `Resource`s to support sync-collection, need to implement `SyncCollectionResource` which has two methods:
- `URI getSyncToken()`: sync-token to respond. (Client will send this token in the next sync-collection request)
- `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.