Merge pull request #1383 from systay/cypher-compilers-mk2

Separates Cypher intro multiple modules
Adds properties to nodes and relationships

Adds parsing for properties on nodes and relationships
Moves properties from patterns to predicates where appropriate
Allows nodes to have properties in MATCH
QueryContext now takes longs instead of PropertyContainers for property operations
The Scala PatternMatcher handles nodes with properties
Adds failing test that shows the problem with properties on patterns pointing to other parts of the pattern
Adds properties to variable length relationships
Rewrites properties on relationships
Update the SemanticCheck of patterns to work in two phases

First, semantic check the symbols, and only after, check the expressions
on the pattern. This allow expressions in patterns to reference other
parts of the same pattern