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.
No longer closes txId on append failure

since we now distunguish between committing and committed txId. The
appender gets a next committing txId, which is just a candidate for
committing. So in case of failure to append there's no transaction to
close since it's not marked as committed. Marking as committed is the last
operation of appending.

This issue would be observed by having a transaction failing to append to
the log, to the go and shut down the database. The database would await
last closed transaction to be the same as the last committed, and since
last closed would be lastCommitted+1 that would never happen.
Merge pull request #2955 from jakub-/fresh-name-rewriters

Fresh name rewriters
Merge pull request #2963 from tinwelint/2.2-undo-close-on-append-failure

No longer closes txId on append failure
More information in AIOOBE
Revert "Revert "Move pretty printing of ast nodes to ASTNodes""

This reverts commit 853c20d7332cf5d46a7752ceb04352defb9e543a.
Make Pretty take an inner doc gen for rendering child nodes

o Makes ASTNode render using default
o Factors out ToString concern more clearly
Moving ast doc pretty printing to doc builders again but this time using the converter pattern
Pretty-printing collections
Fix astDocBuilder to properly pretty print nested values
Add astStructureDocBuilder for printing both ast and structure
Various pretty printing tweaks

o Support ast.Parameter
o Disable astStructureDocGen for now
o Add Doc.noBreak
Extract core of perty function composition into separate bling package

o Improves error handling
  o Uses total functions to Option to be more aware of error situations
  o Inline with concrete docGens instead of weird outer wrapper
    (error handling is a docGen local concern with a sane default)
o Replaces all of docbuilders and docgenerator types with new DocGen[-T]
o Temporarily disables Pretty, ast support
o Rename HasDocFormatter => DocFormatting
o Rename HasDocGen => DocHandler
o Prepares ast printing to use converter pattern (not hooked in)