OGM-657 Extracting LocalCacheManager and KeyProvider contracts to allow for a pluggable persistence strategy;

* Making the current behavior an implementation of these contracts
OGM-657 moving classes specific to "cache-per-kind" strategy to dedicated package
OGM-657 Fixing wrong variable names
OGM-657 Implementing the "cache-per-table" strategy
OGM-657 Adding configuration option for cache storage
OGM-657 Raising an exception in case an unexpected key version is encountered during de-serialiation
OGM-657 Adding property for strategy configuration to Ehcache dialect documentation
OGM-657 Missing JBoss Logging dependency in the Ehcache Module
OGM-618 Don't store null in association rows for document stores
OGM-618 Don't store null in association rows for map-based stores
OGM-618 Using more descriptive method name
OGM-618 Don't store null in tuples in map-based dialects
OGM-618 Don't store null values in entity documents for MongoDB
Fix missing break; in MapHelpers
OGM-618 Treat associationRow PUT_NULL like REMOVE

In practice the test suite does not reach PUT_NULL in that case
OGM-618 Do not put null values in CouchDBDocument
OGM-618 Remove dotted columns when set to null in MongoDB
OGM-609 Adding performance test suite
OGM-609 Adding option for benchmark VM arguments
OGM-609 Adding benchmark for insertion/selection of entities with associations