Adds startNode/endNode to Cypher
s/node space/graph/ in source and javadocs
Makes cypher prefer uniqueness constraint indexes over regular ones

o Adds PlanContext.getUniquenessConstraint
o Adds UniquenessConstraintSeekStrategy
o Changes NodeFetchStrategy priorities to prefer constraints
Refactoring of how MERGE is parser, in preparation for MERGE for patterns
Provide apply method for CollectionType
Add hashCode methods where required
Add mergeUp

And rename mergeWith to mergeDown
Fixes #780 - Queries with literal collections fail against schema indexes
Merge remote-tracking branch 'systay/merge-ast' into 2.0
Merge branch '2.0-start-unique' into 2.0
Merge branch '2.0-node-spaces-are-graphs' into 2.0
Merge remote-tracking branch 'systay/rel-functions' into 2.0

Conflicts:
	community/cypher/CHANGES.txt
Merge remote-tracking branch 'chrisleishman/collection_apply' into 2.0