#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 
calling base.CanWriteResult but later `CreateSerializer` returning null, leaves the context with an unexpected mediatype on it. This should be refactored or at least cleaned out.

So at a minimum (and I don't like the code this way) it should

```C#
if (base.CanWriteResult(context, contentType)
{
    var savedContentType = context.ContentType;
    if (CreateSerializer(base.GetObjectType(context)) != null)
    {
         return true;
     }
     
     context.ContentType = savedContentType OR null;
}