Introducing input XML Formatters.

TODO: Stylecop.
XmlOutputFormatters will be in a separate PR.
nit: probably you can just have a private setter on the properties instead of relying on a backing field. It makes it a bit easier to read.