Add MetadataRoot to MetadataStore getRoot/setRoot interfaces

Note: This includes the commits from #482

getRoot and setRoot both return Object.  These commits change:
· MetadataRoot interface added
· getRoot to return MetadataRoot
· setRoot to require MetadataRoot (Object variant is retained but deprecated for compatibility)
· All code switched to use OMEXMLService rather than the deprecated MetadataStore wrappers
· Deprecated MetadataStore methods have been deleted [this can be easily reverted]
· To maintain compatibility for existing users, users of the OMEXMLMetadata store which were previously getting and setting OME objects now use OMEXMLMetadataRoot; this is an OME object which also provides the MetadataRoot interface.  We can also continue to allow setting of plain OME model objects; the OMEXMLMetadataRoot class just needs a ctor to allow it, so this is easily added if required.
		throw new IllegalArgumentException("Expecting OMEXMLMetadataRoot class or subclass.");
· All in-tree users of the getRoot/setRoot interfaces use MetadataRoot/OMEXMLMetadataRoot as appropriate.