Introducing input XML Formatters.

TODO: Stylecop.
XmlOutputFormatters will be in a separate PR.
You should account for ContentLength being null. EIther do `!request.ContentLength.HasValue || request.ContentLength == 0` or null-coalesce it `request.ContentLength ?? 0 == 0`