cpp: Add OMEXMLMetadata template

This updates xsd-fu to add the last bits needed to provide suitable type information, and then adds the template itself.  The only changes to the generated code are the addition of OMEXMLMetadata.(cpp|h), which should compile without error.

Testing:
- compiles and links without error
- the code looks reasonable

Note that there are still some missing bits from the components/scifio/src/loci/formats/ome/AbstractOMEXMLMetadata.java and components/scifio-devel/src/ome/scifio/xml/XMLTools.java.  Some of the casting is also redundant and could be removed with additional logic in the templates.