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.
"FOR NOW" I'm going to leave this file here in this admittedly wrong place - to underscore its wrong-placedness. When OLX work begins and more XSDs are written, that's when a permanent place and a release/deployment process should be formulated. @feanil suggested a separate project altogether. @cpennington likes keeping XSDs close to the code that generates what they validate. But we all agree they need to go somewhere externally accessible.