Create OGM project structure
Initial draft of the type system

Reuse part of the Hibernate Core type system including its design.
A further integration is possible and will be discussed with Steve and the team.
A bridge associating a core type to a grid type is the first approach used at the moment.
Metadata holder and cache system intialized

CacheLifecycleManager can be attached to the Hibernate SessionFactory and hosts all the metadata as well as the underlying cache.
The current system is not abstracted from Infinispan but it could with some work.
The cache key is composed of the class and the unique id.
Improve helper class to extract metadata services
Start coding an OgmEntityPersister

Temptatively extends AbstractEntityPersister.
implement getDatabaseSnapshot with grid access
Move helper class to right package o.h.ogm.util
implement EntityPersister getcurrentVersion

also mark lazy property loading operations as not supported
Rename CacheLifecycleManager to GridMetadataManager

Same for Helper class associated to it
This is really the object hosting the grid metadata information
Move all GridMetadataManager concepts to the same metadata package
Add TODO list to keep track of... todos
Move to Infinispan 4.1.0.CR1
Implement locking strategies
minor typo
Implement persister#forceVersionIncrement

I've decided to use a get/compare/put approach despite the lack of atomicity
Alternatives were not convincing and likely much more heavy
Clean imports
[persister] Delegate lock operation to the dialect
Optimize access to cache from gridMetadataManager
Add hydrate contract (without implementation)
Fix contract GridType#nullSafeSet to properly support multiple columns
Add todo