OGM-639 Exclude jconsole.jar as transitive dependency

  This has two benefits:
  * the build is possible in Windows
  * the build works with JDK 9
Minor improvement describing why we cache cache lookups
OGM-452 Externalize the cache and key computation for Infinispan
OGM-452 Use generics for the cache key types
OGM-452 Limiting usage of CacheAndKeyProvider to InfinispanDialect only (there we can inject the required meta-data as obtained from the SF)
OGM-452 Extracting LocalCacheManager contract from CacheAndKeyProvider;

* Moving management of caches to LocalCacheManager; Sub-classes are in charge of returning the right cache for a given entity type
* Triggering cache initialization via SchemaDefiner contract which provides access to all required tables
OGM-452 Renaming KeyProvider contract
OGM-452 Moving classes specific to strategy "per kind" to the right package
OGM-452 Avoiding knowledge about cache names in LocalCacheManager
OGM-452 Implementing "cache per table" strategy for entities
OGM-452 Implementing "cache per table" strategy for associations
OGM-452 Implementing "cache per table" strategy for id sources
OGM-452 Some clean-up around mass indexing
OGM-452 Moving shared RowKeyExternalizer to common package; Establishing shared constant holder for all externalizer ids
OGM-452 Making strategy configurable; Duplicating test for now to test both strategies
OGM-452 Incorporating review remarks
OGM-452 Use the persistent key to lock
OGM-452 Removing superfluous parameter
OGM-452 Avoiding some warnings
OGM-452 Describing new configuration option in the reference guide