#1075: Move CreateSerializer out of the base class of XmlSerializer.

This is to prevent the casting upstream in CreateSerializer(). Since CanWriteResult() depends on CreateSerializer(), it has also been moved along.

Issue #1075 
It might be nicer to rewrite this method as:

```C#
public XmlSerializer CreateSerialier([NotNull] Type type)
{
    try { return new XmlSerializer(); }
    catch { /* don't throw */ }
    return null;
}
```

In particular the null assignment and specifying `(Exception)` in the catch block