Introducing input XML Formatters.

XmlOutputFormatters will be in a separate PR.
should we have a test that includes UTF16?

What about with BOM where's it's not supposed to be? or without BOM where it's required? How about invalid characters?