Introducing input XML Formatters.

TODO: Stylecop.
XmlOutputFormatters will be in a separate PR.
are there tests for this in the old code? worth copying over if they exist