Add rewriting of Cypher the AST

Currently rewrites patterns to name all elements, and to move predicates in `MATCH` patterns into the associated `WHERE` clause.