Memoizer: prevent exception if the memo file's version is not x.y.z

If the stored version is something like UNKNOWN, then minor version
parsing would have failed with a StringIndexOutOfBoundsException.

Fixes #11971.
Wlz: make the service variable transient

This prevents the Memoizer from storing the service variable, which
should prevent problems with reinitializing .wlz files when a memo file
is present.

Fixes #12019.
Only add a MetadataOnly element if no TiffData elements are present

This prevents validation errors for most OME-TIFF files; noticed by @qidane.
cmake: Enable clang++ docstring checking
cmake: Enable -Wextra warnings

This requires fixing of all the warnings in static and generated code.
cmake: Enable -Wconversion warnings

Fix all type conversion warnings.  This also required changing
the size of some of the base types used e.g. pixel_size_type.
cmake: Enable -Wfloat-equal warnings

Floating point comparisons, primarily in test cases, updated to either
use integer comparisons or range comparisons (i.e. not equality).
cmake: Enable -Wformat=2 warnings
cmake: Enable -Wimplicit-atomic-properties warnings
cmake: Enable -Wmissing-delarations -Wmissing-prototypes warnings
cmake: Enable -Woverlength-strings warning
cmake: Enable -Wstrict-selector-match warning
cmake: Enable -Wundeclared-selector warning
cmake: Enable -Wunreachable-code warning
cpp: test: Disable warnings for intentional errors being tested
cpp: Explicitly initialise virtual bases in most-derived classes
cpp: bioformats: Disable switch default warning in PixelProperties
cpp: xerces: Clean up construction, assignment and implicit conversions

The only implicit conversion is now to bool, with explicit get()
methods providing access to the wrapped xerces-c node pointers.
This removes abiguity when used in if statements, where it will
now properly evaluate as bool.  It was previously evaluating as
the wrapped pointer and comparing to null (which was effectively
the same).

Also fix construction and assignment so that Element will
correctly assign the correct parent Node pointers as well.
xsd-fu: Restore commented-out setRoot argument in AggregateMetadata
merge develop -D org: PR 857 (Initial support for Zeiss .lms files)