Start using IndentedTextWriter

Create a few combinators for string generations
Move parsing to SourceParser

PrettyPrinter doesn't directly access compiler AST