Changes to introduce CanWriteResult for Xml OutputFormatters.

Overriding CanWriteResult in XmlOutputFormatters. By doing this, there will never be a case where XmlOutputFormatters are asked to write a type which they do not support.
Hmmm makes sense to call base function first.

There is no well defined list. Hence creating is the only way. One optimization we can do here is caching the Serializer which we create. But that is out of scope of this PR.