specification: Rename additions/jar to external

For use by the C++ code where this name is inappropriate in the
install tree.
specification: Add XML catalogues for all released XML schemas
Merge remote-tracking branch 'origin/develop' into specification-catalogue2
cpp: ome-xml: Install external schemas and catalogue files
PNG: reduce the amount of memory needed to read most tiles

The very last row of tiles will still require the full image to be
read, however.
cpp: xerces: Throw exception on EntityResolver failure
cpp: test: Update xerces schema paths
Merge remote-tracking branch 'origin/develop' into specification-catalogue
Merge branch 'cpp-xercesfix' into specification-catalogue
PNG: use a custom InputStream implementation for decompressing images

This prevents us from having to read the entire compressed stream into
memory before decompressing.  See #12274.
specification: Add missing catalogue for 2007-06 schema
specification: Add missing xml.xsd entity to external catalogue
cpp: xerces: Add catalogue registration to EntityResolver
cpp: xerces: Minor wrapper improvements
cpp: xerces: Add string comparison operators
cpp: xerces: Recursively process XML catalogues
cpp: xerces: Reduce catalogue initialisation overhead

Rather than statting every schema file to make sure it
exists before adding it to the entity map, just add it
unconditionally.  If the assumption it exists is wrong,
it will just require fetching the slow way.  The only
other failure cases are if this means it won't try an
alternate but valid version of the uri which is
registered afterward.  However, since this would
indicate a bug in our catalogues and will be very
uncommon, instead cater for the common case where the
installation is not broken.
cpp: xerces: Correct data caching in the entity resolver
cpp: xerces: Correct clang++ warnings in entity resolver
cpp: xerces: Update API documentation