Moving Input formatter to use header abstractions + MvcOptions.

Will be following up with a pr for cleaning up the inputformatter interface.
That said, was there a specific reason we changed from readonly fields to private setters for this?