Refactor and link modulo annotation creation

This is largely a cleanup of the three copies
of modulo creation for Z, T, and C. Notable is
the call to Image.linkAnnotation which was not
previously being called. Without this, OMERO is
not aware of the annotation.
Fill OME model objects

This is a suboptimal solution since it will require
other interface implementors to also implement the
new methods, but this was the simplest way to provide
the necessary XML parsing for individual elements.
Refactor methods into XMLTools and remove API changes
Disable OMERO Ann to test removal of NS

setValue() on the Modulo object was causing bfconvert
to fail due to XML parsing. This has now been disabled.
At the same time the NS elements from asXMLElement()
have been removed creating the desired block of XML:

```
    <XMLAnnotation ID="Annotation:90" Namespace="openmicroscopy.org/omero/dimension/modulo">
      <Value>
        <ModuloAlongT End="12304.687643793777" Start="0.0" Step="195.3125022824409" Type="lifetime" TypeDescription="TCSPC" Unit="ps"/>
      </Value>
    </XMLAnnotation>
```
Re-activate setValue but omit XML declration

XMLTools now permits disabling the `<? xml` block on
writeXML and dumpXML which allows us to move a step
further, though bfconvert is still failing with:

```
Exception in thread "main" java.lang.RuntimeException:
loci.common.services.ServiceException: java.lang.RuntimeException: Value node list size 2 != 1
```
Remove asXMLElement to prevent dupe Values
Wrap ModuloAlong element with Modulo
Also fix OriginalMetadata annotations in the same way

Note: the private 'value' field hides the proper xmlannotation
'value' field which is a bit confusing.
Fix unit test by clarifying getValue v. getValueForKey
ND2: prevent alpha component from being set to 0

If the alpha is set to 0, the color will not show up correctly in
Insight.  This forces alpha to be set to 255 so that the color always
appears correctly.

Fixes #10646.
Fix unused imports
Zeiss CZI: adjust for incorrectly recorded extra dimensions

In some cases, the extra dimensions (e.g. 'positions') will be set to > 1
when only one e.g. position was actually acquired.  This commit corrects
for that when assigning plane indices, which has the effect of fixing
missing stage positions and timestamps.

Fixes #11750.
merge develop -D org -I include -E exclude: PR 528 (Tile performance improvements for VMS and NDPI)
merge develop -D org -I include -E exclude: PR 796 (Zip: improve reader and handle performance)
merge develop -D org -I include -E exclude: PR 804 (Leica LIF: 'C' goes before other dimensions if SizeC and SizeT > 1)
merge develop -D org -I include -E exclude: PR 807 (CellWorx: ignore thumbnails and missing channel names (rebased onto develop))
merge develop -D org -I include -E exclude: PR 810 (Preserve lookup tables when exporting from ImageJ)
merge develop -D org -I include -E exclude: PR 817 (xsd-fu: Split fu.py into separate modules)
merge develop -D org -I include -E exclude: PR 818 (Last round of fixes for Maven build system)
merge develop -D org -I include -E exclude: PR 819 (Flex: map server-mapped files to the same directory as metadata files)