cpp: ome-xml: Move OMEModelImpl into detail namespace
cpp: cmake: Correct misnamed variable
xsd-fu: C++ OMEXMLMetadata uses make_shared in place of new
xsd-fu: C++ OMEXMLModel uses make_shared in place of new
cpp: ome-xml: OMEModel interface is inherited using virtual public
cpp: ome-xml: OMEModel is an interface

Constructor is protected.
Remove copy constructor and assignment operators.
xsd-fu: Handle namespaces in typenames when computing header paths
cpp: ome-xml: Split OMEModelObject into interface and implementation

This matches the java design (AbstractOMEModelObject is
detail::OMEModelObject).

In order to accommodate these changes, some adjustments to the
xsd-fu generator and model object template were needed.  Model
objects now have an explicit copy constructor and a deleted
implicit assignent operator.

MetadataRoot was also made a proper interface, and
OMEXMLMetadataRoot updated to match both this and the model
object changes.
cpp: ome-xml: Correct interfaces

Each interface has:
- protected inline constructor
- public virtual inline destructor
- deleted (private unimplemented) copy constructor
- deleted (private unimplemented) assignment operator
- uses virtual public inheritance when inheriting other interfaces

Each interface implementor:
- uses virtual public inheritance for each interface
- has a public virtual destructor
cpp: bioformats: Correct Modulo documentation link
cpp: ome-xml: Correct doxygen comment typo
cpp: bioformats: Change spelling in Modulo doxygen comment
Merge pull request #973 from rleigh-dundee/cpp-model-fixes

C++: Fixes for the OME-XML model and metadata store interfaces