XmlSerializer: Add support to serialize nullable types when the XmlElement has explicity set the DataType
The existing code had a special code path for handling nullables that
ignored the DataType component.
This patch splits the nullable test away, allows the specified XmlDataType
to be probed and then performs the standard type lookup mechanism.
This allows this:
[XmlElement ("MyNullableTime", DataType="time", IsNullable=true)]
DateTime? myTime;
To be serialized as a "time" instead of a "datetime".
Fixes bug #329