OGM-645 Converting meta-data types into interfaces
OGM-642 Adding test; Using JBoss Logging for creation of exception
OGM-642 Performing read before inserts only if required as per the datastore's capabilities;

* Adding new method GridDialect#getDuplicateInsertPreventionStrategy() for letting dialects configure their duplicate prevention strategy
* Doing the read in OgmEntityPersister#insert() only in case the strategy is LOOK_UP
OGM-642 Using strategy NATIVE for MongoDB
OGM-642 Using strategy NATIVE for CouchDB
OGM-642 Using NATIVE strategy for Neo4j
OGM-642 Making duplicate id detection strategy configurable per entity type;

* Passing EntityKeyMetadata to getDuplicateInsertPreventionStrategy()
* For Neo4j use NATIVE for non-compound keys, LOOK_UP otherwise as unique keys can only be added to single properties
OGM-642 Using NATIVE strategy for Ehcache
OGM-642 Addressing review remarks
OGM-647 Raising EntityExistsException if duplicated entity is inserted
OGM-639 Ignore unrecognized parameters with JDK 9
OGM-606 Rename test in OneToOneTest
OGM-606 Add JPA mapping example to MongoDB documentation
OGM-606 Neo4j images used in the documentation
OGM-606 Add JPA mapping example in Neo4j documentation
OGM-606 Add JPA mapping example to CouchDB documentation
OGM-606 Add unidirectional many-to-many test
OGM-606 Fix typos in MongoDB documentation
OGM-606 Add double field to BuiltInTypeTest
OGM-606 Fix example in MongoDB documentation