Make is easy to implement pretty printing on ast nodes directly and clean up perty surface API
Move pretty printing of ast nodes to ASTNodes
Merge pull request #2941 from boggle/perty-ast

Move pretty printing of ast nodes to ASTNodes
Revert "Move pretty printing of ast nodes to ASTNodes"
Merge pull request #2951 from neo4j/revert-2941-perty-ast

Revert "Move pretty printing of ast nodes to ASTNodes"
Add projectFreshSortExpressions rewriter
Further dismantle inlineProjections

It no longer produces WITH * clauses, the reason being that they
were making it harder for the planner to reason about arguments
that need to be fed into a tail planner query.

Instead, the planner query builder will squash two planner queries
together if the intermediate projection is a simple identifier
to identifier mapping.