Adding OutputFormatter base class

My assumption seeing this is that this PR is just a code dump? Will the abstractions for conneg + refactor come next?