Add another testing framework

This is pretty nasty, but I don't know how to unit test certain
parts of the compiler without going to enormous efforts.
prettier pretty printing
Dirty unary minus parsing hack.
Dirtier unary minus parsing hack.
cosmetic changes
use the Shunting Yard algorithm for parsing exprs.