OGM-547 Apply unique constraints on Neo4j database

  A unique constraint is going to be created for properties representing
  an identifier, a natural id or a unique column.

  Only unique constraints for single columns are created because Neo4j
  does not support constraint on mulitple properties.

  The creation of constraints for entities can be skipped setting the
  property hibernate.schema_update.unique_constraint_strategy to SKIP
OGM-547 Add test for unique constraints in Neo4j
OGM-547 Add test for skipping unique constraints generation
OGM-547 Update javadoc
OGM-547 Better logging during the creation of unique constraints in Neo4j
OGM-547 Avoid the creation of unique constraints on foreign key columns

  Neo4j does not create properties for foreign key columns, so we don't
  need to create a constraint for them
OGM-547 Some minor improvements:

* Making internal method private
* Adding note on supported type for config option to documentation
OGM-547 Adding entity key to logging message for unique constraint violations to facilitate error analyses