add json formatter class

This is the first formatter class to centralize the formatting process
for easier use and especially easier testing.
add formatter object to format sub

The formatter object gets to have attributes and settings which may be
used by the underlying formatting module. This is needed for the CSV
formatter, but I suspect we'll have other uses as time goes on.
add csv format module

This one does not do very well: It treats CSV as line-delimited, which
is completely wrong.

We need to do some kind of ETL::Yertle::Stream object which can wrap
strings and filehandles to do things, and pass those into formatters...
add yaml formatter class

This is the default format for message-passing between commands on the
shell
add recommends for all supported formatter modules

This way Travis-CI will test them for us, which is what we want.