Moving Input formatter to use header abstractions + MvcOptions.

Will be following up with a pr for cleaning up the inputformatter interface.
It would've been nice if this was done as two separate PRs. The two things that you're trying to achieve here are independent of each other.