Cypher docs update
Merge pull request #2027 from systay/2.0-docs-update

Cypher docs update
Use identity of the Expression AST Nodes for attaching type annotations

Previously this used equality, which could conflict and overwrite type
annotations. Using identity will also be more performant.

Resolves #2026
Reuse plan builder within a single compiler instance
Track symbol ast.Identifier nodes rather than just InputPosition

This is also cheaper than using a SortedSet
Use CypherFunSuite for SemanticStateTest
Merge pull request #2029 from cleishm/type-identity

Type identity
Merge branch 'neo4j/2.0-maint' into master
Merge pull request #2031 from cleishm/master-merge-2.0-maint

Merge neo4j/2.0-maint into master