Pretty Printer

The only known issue (apart from the slight ugliness of the code due to the nontrivial rules for pretty whitespace) is that the main method is pretty printed as `public void main(String[] args) {...` (dropping the `static`).
Would be nice if we could just return Scalatest's string equality matcher which will highlight the non-matching parts of the string. I haven't foud a way to do this though.