Moving Input formatter to use header abstractions + MvcOptions.

Will be following up with a pr for cleaning up the inputformatter interface.
consider refactoring to return null instead of throwing. Then the type ends up out of the param list, and this method is a bit more generally useful.