Fix for codeplex-1120 - Move CreateSerializer out of the base class

This is a small refactor as a precursor for api-explorer work.

This adds a virtual `CanWriteType` method to `OutputFormatter` which our xml formatters use to determine which types they can and cannot serialize.
you can make this code look like:
```c#
try
{
    return new XmlSerializer(type);
}
catch(Exception)
{
    // comments..
}

return null;
```
just to avoid the extra declaration.