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
Decouple {EE|GDB}Helper from JUnit so that it gets easier to use the new test style

o Introduced new top-level test classes: {EE|GDB}JUnitSuite, EEJUnitSuite
o Converted EqualsTest to use EEFunSuite as an example
Rename new suite classes to Cypher{JUnit|Fun}Suite and move to commons

o Adds a provided dependency from cypher to commons for tests
Rename StatisticsChecker to QueryStatisticsTestSupport

o Clean up of QueryStatisticsTestSupport and synced with QueryStatistics again
o Change QS.deleted{Node|Rel} => QS.{node|rel}Deleted for consistency