Make formatters object-oriented so we can autoload them

This commit changes the way we handle formatter objects by using
`const_get` instead of searching through a list of Formatter objects.
This allows us to use Ruby's native `Kernel.autolaod` to _only_ load
the formatter classes that we want.

Switching to an object-orientated approach also makes it much easier to
test and reason about the code. If anything, it is now less lines of
code and less intimidating to a non-Rubyist.