Added syntax tree code.

Implementation is completely untested. The code is still unused, so this isn't
the worst thing in the world. It is being committed so that Ryley can start
using the interface for the parser (even if it doesn't work quite right yet).