Changed handling of empty series names in ND2 files

* Empty series names ("") result in the filename+series+seriesNumber
scheme being used
PrairieReader: remove unused import
PrairieMetadata: fix critical errors

This change fixes several metadata parsing bugs:

1) The relevant XML element is called "SubindexedValue", not
   "SubindexValue". Without this change, subindexed values are never
   read correctly, so e.g. X/Y/Z stage positions are not parsed.

2) The loop variable for subindexed values is "s", not "i".
   Without this change, an NPE is typically thrown during the
   SubindexedValues parsing loop.

3) Subindexed value table should be indexed on subindex, not index.

4) Parsing of subindexed values from old-style XML (<Key> elements)
   did not add the parsed subindexed value table to the data structure.
Add unit tests for PrairieMetadata

These tests are by no means complete, but do provide regression tests
for the bugs fixed in the previous commit.
OMETiffReader: remove unused import
OMETiffReader: support BinaryOnly OME-TIFF refs

This commit changes the behavior of the OME-TIFF reader to support
extraction of OME-XML metadata from an OME-TIFF reference via the
BinaryOnly MetadataFile attribute.

According to a38bd0770eff839f2daf0289b10e5c6ae76afd5c, the BinaryOnly
MetadataFile is only supposed to reference an OME-XML document, not an
OME-TIFF file containing an embedded OME-XML document.

But according to the OME-TIFF specification [1], it is valid to
reference such an OME-TIFF.

Since supporting it is easy and very useful and already documented,
let's go ahead and do it!

[1] https://www.openmicroscopy.org/site/support/ome-model/ome-tiff/specification.html#storing-partial-metadata-blocks
PrairieMetadata: clarify method purpose in javadoc
PrairieMetadata: add API to access wavelengths
PrairieReader: populate emission wavelengths

The Prairie XML records the channel emission wavelengths, so
let's populate the OME-XML with that information as appropriate.
PrairieMetadata: activate all used channels

This makes spectral PrairieView datasets work as expected.

Previously, the reader only activated channels specifically flagged as
active in the Prairie configuration metadata. This was fragile for two
reasons:

1) The Prairie configuration metadata is subject to change
   (and in fact did change once already, from CFG to ENV).

2) PrairieView 5.2 added support for spectral datasets, where the active
   channels metadata no longer accurately reflects the actually active
   channels. Instead, the active channels are meant to be gleaned from
   the "channel" attribute of each <File> element present in the XML
   metadata.

With this change, all channels that are actually used (i.e., which
actually have one or more associated <File> elements) will affect the
final dimensional structure of each Image.
PrairieMetadata: add API to query spectral mode
Add first version of script to bump Maven version
Add substitution for release.version
Add logic to replace STABLE_VERSION
Refactor pattern substitution into function
Use argparse and functions
Make script executable
Add version format check
Fix description
Merge pull request #1437 from stelfrich/fixND2EmptySeriesNames

Changed handling of empty series names in ND2 files