Add an ExpressionFormatter class.

This class ties together the learnings of the current chapter on pattern
matching with the earlier work on the Element layout library, to produce
a library that can pattern mathematical expressions in a horizontal and
vertical layout, such that the expression:

((a / (b * c) + 1 / n) / 3)

will be layed out as:

  a     1
----- + -
b * c   n
---------
    3