Made OME translation API more robust

Added To and From OME translator interfaces and added skeletons for the
"from OME" translators.

Translation must be available in both directions for OMEMetadata to be a
functional intermediary storage (as it was in bio-formats).
Fleshed out ImageMetadata population method

The OMEXMLMetadataService method populating ImageMetadata using a
MetadataRetrieve has been fleshed out.
Added Dimension population methods

SCIFIOMetadataTools now has a set of standard populateDimensions method
signatures for populating the axes of ImageMetadata. The goal is to
standardize this and reduce code repetition.
Added class-based translator lookup

The translator service can now look up translators based on class
instead of Metadata instance.

This facilitates looking up lower priority translators that may be
overwritten otherwise, e.g. if you are translating an OMEMetadata to an
APNGMetadata, you may want to first invoke the general Metadata to
APNGMetadata translator. This would be bypassed by the Metadata
instance-based lookup method, as it finds translators based on runtime
class.
Added ics setter methods

Added a series of dynamic setter methods to the ICS Metadata. These
reverse the getter methods, generating new entries in the Metadata's
key,value pair dictionary.
Implemented OME->Format translators

The OME to APNG and OME to ICS translators are now fleshed out and
functional.
Added context-only OMEMetadata constructor

This constructor funnels through a context + OMEXMLMetadata constructor,
setting the root to null.

Context constructors are necessary right now in Metadata classes not
attached to existing Formats (as it is the Format.createMetadata method
that sets the Metadata's context as well).
Guaranteed axis lengths == 1 in populateDimensions

The SCIFIOMetadataTools methods that populates ImageMetadata dimensions
now guarantee a minimum axis length of 1.
Added null MetadataOptions check

Fixed a potential NPE regarding null MetadataOptions in the
OMEICSTranslator.
Set OME Translator priorities

Set these all to high priority, so they are picked first over the more
general translators (as they will also match the class of, say, Metadata
to TypedMetadata translators)
Moved isVersionTwo from ICSFormat to Parser

The isVersionTwo method makes more sense to be in the Parser than the
actual Format class. Formats are not to be externally functional in that
sense.

Effectively copied the functionality of the bio-formats
isSingleFileMethod (which calls this new Parser method)
Removed state from translators

Previous implementation had translators using protected fields that
would be set turing translate(Metadata, Metadata) calls, then operated
on by a non-public translate() method (which allowed for pre and
post-translation hooks).

However, state is always dangerous for multi-threaded environments. So,
instead, a "typedTranslate" method was added that takes the typed
Metadata instances, and is functionally identical.
Updated ICS Format

The ICS format was severely out of sync with the Bio-Formats
ICSReader/ICSWriter. This should be corrected now.
Math correction in writer plane size check

Was using bytes per pixel instead of RGBChannel count. Fixed.
Don't create unnecessary ImageMetadata

The OMEXMLMetadataService now checks to see if it needs to create
ImageMetadata instead of just always creating it, when populating
a Metadata object.

The previous behavior could lead to doubling up of Metadata, which would
then mismatch with the image/plane indices.
Fix RGBC check in OMEXMLService

The Metadata population in OMEXMLMetadataService was setting RGB to true
if the rgb Channel count was > 0. It should be if > 1, as 1 is the
default value.
Improved getBytes handling in BIPlane

Corrected the BufferedImage byte extraction, to differentiate 8 and 16
bit component sizes, as was done in Bio-Formats.
Always copy to provided byte array

In the SCIFIOBIFormatReader, when provided a byte array, as much as
possible of the opened array is copied to the provided array (instead of
only copying when the sizes matched).
Corrected APNG implementation

The SCIFIO implemenation was missing several features of the Bio-formats
implementation. This should be largely fixed now.
Corrected scifio-devel classpath

Added log4j jars, removed netcdf.