XmlSettings for Xml (equivalent of JsonSettings)

As per #1301 I've followed the comments and fixed the tab formatting to be consistent. 


The XmlSettings is to allow setting default options when serializing xml. In my use-case, setting the Encoding.

I thought that could potentially break some people's usages, so I've added a boolean property EncodingEnabled and defaulted it to false. Other than that DefaultEncoding is set to utf-8 just like JsonSettings.
So it seems to avoid a name clash with `ContentType` on `Repsonse`. But that's confusing. Any reason not to make `ContentType` virtual and then override here?