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 ast support
o Rename HasDocFormatter => DocFormatting
o Rename HasDocGen => DocHandler
o Rename ASTTerm => ASTPhrase
o Prepares ast printing to use converter pattern (not hooked in / commented out)
Ported tests to use new perty
Fixed minor race in ArrayQueueOutOfOrderSequence
Merge pull request #2994 from lutovich/fix-minor-race

Fixed minor race in ArrayQueueOutOfOrderSequence
Fixed bug, relationships were using the wrong direction in VarLengthExpandType