Introduce Expression Trees

I am trying to generalize formatting. As I went through trying to format
strings, the code became a nightmare and I introduced a lot of bugs. I
realized that I can never provide formatting to everyone's content. So,
I decided I would make formatting easier to customize. Hence, I am
introducing the concept of expression trees, basically an abstract
syntax tree (AST) made up of expressions and tokens. I will probably be
spending time adding additional information to the tokens and
expressions to make it easy to navigate the tree and format the tokens
as desired. For now, I have created a simple visitor that simply puts
spaces between the tokens. Until I provide the tokens details, it will
be difficult to do additional formatting.