Added a copy(ImageMetadata) signature

ImageMetadata has a new copy(ImageMetadata) signature that populates the
current ImageMetadata using the provided metadata.

This allows ImageMetadata proliferation without requiring that a new
ImageMetadata be constructed, as the other ImageMetadata copy()
signature mandates.
AbstractParser now populates datset name

The AbstractParser implementation now always populates the datset name
of the parsed Metadata object, instead of relying upon the
AbstractMetadata implementation of populating dataset name when setting
the source.
fix: ome.scifio formatting
fix: ome.scifio.services package cleanup
Refactored Formats to ease creation

The TypedFormat interface was removed, along with all generic parameters
in the Format class hierarchy. This was done so that Formats can be
created without requiring all components to be defined beforehand, or
for cases when a component does not need functionality beyond some
default implementation (e.g. the AbstractChecker is sufficient if just
suffix matching is required).

Since classes can't be implemented with an arbitrary number of generic
parameters, new API was added for Formats to delcare their custom
classes. Any component class not found is assumed to be one of a new set
of Default implementations, that simply extend the corresponding
abstract functionality.

Because of the loss of generics, the Format API can no longer guarantee
the concrete return types of its methods. This also affected some
changes in the DefaultFormatService data models. However, type safety
can still be provided by narrowing the return type of these methods in
the concrete Format implementations - if desired. It just can't be
provided in an abstract layer.

Also, some conventions for Formats were being passed through the
constructors (format name and associated suffixes). Because constructors
are not inherited and can not be enforced by the interface, this is
non-intuitive when adding new Formats. To lean more heavily on the
interface, these constructors have been removed, along with the abstract
implementation of these methods - forcing their implementation when
creating a new Format.