Initial commit of early work.
Adding new formatters, changing the way formatters behave.
Adding a command line formatter.
Changing formatting to be slightly more readable.
Updating details of the library.