More robust message parsing

This replaces the usage of attributes from the System.Xml.Serialization namespace, as discussed in #3.
While it's fun that one can create 'DSLs' for XPath in F#, XPath in itself is actually a DSL. How is the above better than `"email-reference/email-data-address"`