Populate image Info property

We now fill the Info property using the parsed MetaTable from SCIFIO
(e.g. "original", raw, key:value pairs), as well as some common metadata
information.

This will appear in the Image > Show Info window
Try to pass errors to IJ1

Instead of always logging our errors and exceptions, we should strive to
pass them to IJ.handleException and IJ.log as appropriate.
Put additional dimensions into Time

We were putting extra dimensions into Channel instead of Time. This
doesn't really make sense because channels have special connotation in
ImageJ 1.x... e.g. we would be expected to provide a LUT for each
channel.

Z also has special connotation, so Time is really our only choice.

NB: we still need to update the rest of the framework to iterate over
these non-XYZCT-dimensions.

Known offenders:
* PlaneHarmonizer
* ColorPixelHarmonizer
* GrayscalePixelHarmonizer
Refactor PixelHarmonizers for extra dims

Now that unknown dimensions are stored in the Time axis we need our
pixel harmonizers to properly read the unknown dimensions from the
source image.

This fixes the Gray and ColorPixelHarmonizers so that they compute the
position of each T index in the potentially multi-dimensional space of
the source image, and query the appropriate position as needed.
Merge branch 'handle-extra-dims'

Extra (non-XYZCT) dimensions were being stored as extra Channels.. but these
true positions were never actually accounted for in the various harmonizers,
resulting in incorrect data and errors.

Also, lumping everything as channels is a bad idea, due to the special
significance of channels (e.g. compositing, attaching LUTs, etc).

We decided that Time was the most neutral dimension and a good place for extra
dimensions, as it also meshes well with the intended dimension XYCZT dimension
order.