Implement XML input/output for AssetMetadata.

@cpennington @dmitchell 
Note that the tests use an XSD to validate the generated XML. The XSD is kept in the test directory for now - but a better place should be found in the future.
You are correct. I'm assuming that a string representation of a BlobLocator with arbitrary data will be possible for the XML. Because, if not, I'll need to do some sort of character-encoded binary data for the XML.