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.