cpp: xerces: Add entity resolver

This resolver maps XML IDs to in memory data or files.  It's
possible to dynamically register and unregister mappings on
the fly.
cpp: xerces: Use entity resolver during parsing
cpp: xerces: Document wrapper is non-copyable
cpp: test: Parameterise xerces tests and use entity resolver to improve speed
fixresolver
cpp: compat: Add basic module introspection

This should work on ELF and Mach-O platforms, i.e. FreeBSD,
Linux and MacOS X.  It will need making conditional and
special-casing for Windows.  This is to allow data and
module directories to be discovered at runtime so that data
files and loadable modules may be loaded.  Normally one run
cmake with a fixed prefix path in which case this is known,
but for portable builds which may have the prefix changed
we need a method for dynamically discovering this
information.
cpp: ome-xml: Install OME-XML and third-party schemas
fixmod
cpp: compat: Document compat namespace