Add ParserFixture for using Cypher Parser in tests
Various performance updates to AST rewriting

o Memoize copy constructors for Products
o Use an Iterator for folding over Product children
o Use Object equality (this requires that Rewriters work with AnyRef
  items rather than Any)
o Use tail recursive folds
Merge pull request #1979 from cleishm/parser-fixture

Add ParserFixture for using Cypher Parser in tests