DATACMNS-583 - DomainClassConverter returns input if given types are the same.

DomainClassConverter now returns input when the source type is identical to the target type. Previously we erroneously tried to convert the sourceType to the idType of the targetType's backing repository. As a side effect we also avoid performing some unnecessary converter hops.

Original pull request: #101.
DATACMNS-581 - Add support for NotContaining keyword for derived repository queries.

We now support the keyword NotContaining in query methods for repositories. This is achieved by adding NOT_CONTAINING to the Part.Type enum with the variants 'IsNotContaining', 'NotContaining', 'NotContains'. Added a dedicated toString() method to ease debugging to Part.Type.

Original pull request: #100.
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.