DATACMNS-589 - Polishing.

Made DefaultCrudMethods public to support better testing. Components that are based on CrudMethods can be tested easier if DefaultCrudMethods is public, so that an instance can easily be set up by using a DefaultRepositoryMetadata instance.

Polished JavaDoc and copyright headers.
DATACMNS-588 - Prepare branch for integration with Spring Sync.
DATACMNS-588 - First draft of Spring Sync integration.

Added Spring Sync as optional dependency. Provided Spring Data based SPI extensions for Equivalency (using Spring Data mapping metadata for the detection of an identifier property) and a highly work-in-progress one for PersistenceCallback as CrudInvoker currently doesn't expose enough API to support the collection manipulation scenarios. Item resource based manipulations should work fine though.

Added a JavaConfig class to set up all the necessary bits and pieces and expose the Spring Data backed SPI components as Spring beans.
DATACMNS-588 - Added missing template.mf entries.
DATACMNS-588 - Refactored to use new RepositoryInvoker API.

Refactored RepositoryPersistenceCallback to use new RepositoryInvoker API. Added some unit and integration tests.