N-dimensional refactoring

The SCIFIO Metadata model is now N-dimensional, instead of the fixed 5-D
as implemented by Bio-Formats.

This allows an arbitrary number of axes per image. Ordering of axes is
still indicated by the order in the metadata, but valid orders are no
longer restricted to "XY....".

A new attribute, "planar dimensions", indicates the number of dimensions
that define a single image plane. For example, if given an image with
X=256, Y=256, C=3 and 2 planar dimensions, the image is 3 256x256
planes. If there are 3 planar dimensions for the same dataset, then the
C is the RGB channel. If there were 3 planar dimensions and the order
was CXY instead, it would indicate an RGB interleaved dataset.

There is a semi-universal assumption that the X and Y axes are still
present as planar axes. Removal of this assumption would require an
additional refactoring.

This single commit makes all Metadata changes and updates all utility
classes and Formats to comply to the new N-D model.
SCIFIOMetadataTools: fix section headers
DimRange: add unit tests

Just to be a hurvinek, I used JUnit instead of TestNG.
DimRange: tweak style
DimRange: simplify javadoc expression
DimRange: simplify regex

The brackets are only needed for multiple matching characters.
ImageMetadata: flesh out javadoc
DimRange: simplify regex a little more

You never need to write *? because the * means "0 or more"
whereas ? means "0 or 1" (i.e., "optional").
So * already makes the block optional.
DimRangeTest: add one more quick check
Fix javadoc typos
Refactor planeIndex to long

As all planar lengths are now longs, the rasterized plane index should
be a long as well. There could still be overflow issues with high plane
counts, but using a long index reduces that likelihood over an int.
ImageMetadata: fix addAxis javadoc
ImageMetadata: slightly improve javadoc, but...

...also add a FIXME explaining why the behavior of some axis-related
methods should probably be reconsidered.
ImageMetadata: fix behavior of setAxisType method
ImageMetadata#addAxis(AxisType, long): fix javadoc
ImageMetadata: fix javadoc link
MetadataTest: convert to JUnit
Convert getPlaneCount from int to long

As all plane dimensions are now longs, the overall plane count must be a
long as well.
Remove obselete comment

The Axes.CHANNEL reference is no longer relevant, but was a reference to
a first iteration of the N-Dim API.
Reworded axis list description

Calling CalibratedAxes "sorted" was a misnomer... what was meant to be
conveyed is that the ordering in the metadata is consistent with the
underlying image.