Add GraphDatabaseService.mergeByConstraint (Core API version of merge)

o Provides a utility for adding unique entries for a constraint (getOrCreate) with proper locking, i.e.
  transactions using mergeByConstraint block each other
o Add Merger interface and MergeResult class to core API
o Add documentation
o Add UniqueFactory.asMerger to integrate existing API (UniqueFactory may be deprecated in the long term)