Moving Input formatter to use header abstractions + MvcOptions.

Will be following up with a pr for cleaning up the inputformatter interface.
word from @yishaigalatzer was to wait for discussion to start using c# 6 features... has that changed?