DATACMNS-599 - Introduced IdentifierAccessor API.

PersistentEntity now exposes an getIdentifierAccessor(…)-method that allows obtaining the identifier of an entity without using a PersistentProperty instance. This allows advanced scenarios (like multi-property identifiers). Also we can use store specific means to optimize id lookups to e.g. avoid proxy initialization for lazy loading proxies.
DATACMNS-591 - RepositoryConfigurationDelegate now uses Environment and ResourceLoader everywhere.

We now also use the Environment and ResourceLoader for the component scan to detect whether multiple Spring Data modules are on the classpath.
Feature in-memory - In memory repository abstraction.

Prepare issue branch.
Hacking - InMemory Repository
temp save
temp save: add InMemoryQuery
temp save: refactoring -> move map stuff to dedicated package
temp save: update doc + refactoring
temp save: hacking POC for EhCacheAdapter
temp save: additional tests and some fixes in ehcache abstraction
Basic implementation of in-memory repo stuff
Add Query Creator for EhCache
introduce base class for in memory execution
Refactor to use common base class for part tree query execution.
Introduce BasicMappingContext and BasicPersistentProperty.

This allows us to move id generation to template level
Rename InMemoryOperations implementations to *Template
Introduce @EnableInMemoryRepositories

By default we bootstrap an MapBackedRespository. This can be changed by setting repositoryFactory class.
Additional treatment for Query Parts.
Fix tests that might fail du to uncertainty of result ordering.
Hazelcast in memory repository draft.

Just a quick outline how to do this with hazelcast.