Updated documentation, separated out tests.

Other changes:
- List output now a valid Python/JSON dictionary.
- Minor formatting changes.
- No abstract base class for Formatters.
- Changed Formatter class methods to static methods.