Adding OutputFormatter base class

Sorry, didn't phrase it well - `JsonSerializerSettings.Formatting` already does this, I'm wondering why it's a separate constructor parameter... - Maybe because it's a very commonly changed setting.


*Don't let this discussion hold up your PR. I feel like it's a separate issue.*  Has there been any discussion about moving the settings to Options? In WebAPI you'd typically configure the formatter by doing something like:

`configuration.Formatters.JsonFormatter.SerializerSettings.MaxDepth = 13`

Now that we have a unified model for options, I'm not sure that makes sense. Likewise with result types creating the 'default' settings - the default is probably what would go into options.

/ cc @kichalla