More robust message parsing

This replaces the usage of attributes from the System.Xml.Serialization namespace, as discussed in #3.
Public API? I'm not sure I follow...

The public API of Qaiain is that a message arrives on a queue. That message *ought* to be one of a small set of well-known XML documents, but the de-facto API is that a message is a string... It could be anything, and there's no way to prevent that.