Moving Input formatter to use header abstractions + MvcOptions.

Will be following up with a pr for cleaning up the inputformatter interface.
Would these parameters require `[NotNull]`