Added MetaTable for image/dataset metadata

Previously, Hashtables were used to track key, value pairs of metadata
at both the Image and Dataset level. These were confusingly named
"ImageMetadata" and "DatasetMetadata".

We have unified the concepts with a single "MetaTable" interface and
default implementation, and a "HasMetaTable" interface which both
ImageMetadata and Metadata implement.

Also the API for interacint with these tables has been simplified.
Updating them now requires a call to getTable() of the appropriate scope
(that is, from an Image or DatasetMetadata object). Then the table can
be manually populated or queried.
Updated logic for axis length generation

In AbstractImageMetadata, the axis length array is now always calculated
on-demand, and leverages the existing getAxisLength logic for each
individual axis to avoid repetition of code.
Refactored Metadata#reset method

Instead of always requiring a Class<?> parameter when resetting,
resetting now implicitly occurs from the most specific class and
recurses up.
Standardized acronym case

In scifio-devel, all acornyms are fully upper-case now. This shifted
"Scifio" to "SCIFIO" and "Dicom" to "DICOM".
DICOMFormat: rely on boxing

Removed "new Integer" statements to instead rely on autoboxing, to make
the code easier to read.
wip: FITS