Added new Format SCIFIO component

The Format component was added to serve as an umbrella for all SCIFIO
classes. Its only functionality is to be an entry point and help find
the other classes associated with its format.

Added Abstract layer and high-level implementations for Format.
Moved IMetadata hierarchy to ome-xml component

SCIFIO will no longer define components in terms of OME-XML. Instead,
the OME-XML component will define SCIFIO components for working with the
OME-XML related formats.

To reduce unnecessary coding, the existing flattened XML structure
captured by IMetadata will be preserved in the OME-XML component.

This commit represents the moving of the appropriate packages and
updating of references.
Added translator package to OME-XML component

Added the abstract OMETranslator whicih serves as a base class for all
XXXXtoOME translations via SCIFIO components.

Included implementations for the currently "supported" (though such
support is currently incomplete) formats - ICS and APNG.
Added HasFormat interface to SCIFIO

The HasFormat method marks a class as part of a SCIFIO format and
provides an access point to that overlying Format class.
Introduced Context to SCIFIO

Added a Context class - "SCIFIO.java" - to SCIFIO. The context object is
passed to SCIFIO components created within that context and provides
Format access methods, for finding the Formats currently supported (via
SezPoz). The formats then in turn provide access to the functional SCIFIO
components.

As a necessary support for this context object are a
SCIFIOComponentFinder class which contains methods to find SCIFIO
components (that is, the Format) and the HasContext interface (with an
implementing Abstract layer) to tag objects as context-sensitive.
Added SezPoz as a Maven dependency

The Format and SCIFIO objects both use SezPos for discovering
Translators and Formats, respectively, thus it has become a dependency
of this project.
Added SezPoz annotation classes

Added an annotation for Formats and Translators to a new discovery
package.

By annotating classes of these appropriate types with these annotations,
they become discoverable via SezPoz, which the Format and SCIFIO classes
take advantage of.
Added Translator annotations

APNG and ICS translators are now annotated for SezPoz discovery
Added dependence on HasFormat/HasContext

The core SCIFIO components are now marked at the interface-level to
be object with a Format and Context.

Note that these Interfaces supercede the use of MetadataHandler, as the
concept of Class flags to identify compatible components is no longer
necessary.
Removed unused AbstractChecker methods

Checkers no longer are the container for priorities.. removoed
unnecessary methods, as they have shifted to Format.
AbstractFormatHandler extends AbstractHasContext

To chain the AbstractHasContext with AbstractFormatHandler,
AbstractFormatHandler now extends AbstractHasContext.

This is reasonable given that to get a Format, one has to use a SCIFIO
context object.

This commit also includes name changes to avoid conflicts between the two
classes and the necessary constructors to extend AbstractHasContext.
Added HasContext and HasFormat support

The Abstract layer of the five core SCIFIO components have has been
updated with the appropriate constructors and methods to match the
HasFormat and HasContext APIs.
Corrected Checker annotations/comments

Two methods were not being overriden and a comment erronesously referred
back to a loci.formats class. This has been corrected.
Added getTranslatorClassList to Format interface

The getTranslatorClassList method will return a list of the classes for
all Translators that could possibly translate out of this Format (e.g.
where this format is the source).
Removed reference to SCIFIOContext

Format.java had an erroneous reference to SCIFIOContext class, which is
now HasContext.
Updated findTranslator signature

The Format API method to find a single translator now takes the class of
the target Metadata, instead of the Metadata object.
Added implementation for findTranslatorClassList

Formats now generate a list of their supported classes, via SezPoz
discovery, at the time of instantiation. This list is then accessible
during the lifetime of the format object.
Moved Format annotations to leaf classes

Annotations are not inherited, thus the sezpoz annotations must go in
the concrete implementations and not abstract layer.
Added HasContext implementation to AbstractFormat

Corrected the outdated reference to a SCIFIOComponent and added
necessary constructors.
Moved Class access methods to AbstractFormat

Instead of having each concrete Format class implement these methods,
private data members for each class were added to survive type erasure
and allow the accessor method implementations to live in the
AbstactFormat layer.