Pretty print source form.

Now uses pprint to print out the form, which does nicer indentation.
This required change to using a StringWriter.