No longer uses the Rope data strucure.
Implements a few formatting options using an approach where we modify the source using a rope. Uses very ad-hoc rules for formatting.