Moved CoreMetadata translation to Abstract layer

Both ICS and APNG readers included translation of a provided metadata
object to CoreMetadata in the setMetadata method. This is probably an
artifact of implementation pre-Format unifying classes.

This logic was moved to the AbstractReader layer to prevent repetition
of code.
Parser#parse() also sets Metadata#source

The Metadata source field was not being set properly. During parsing is
an appropriate time to set this field, as it can guarantee that the
metadata being stored matches a particular source.
Added method comments to CoreMetadata

Added better javadoc for many methods in CoreMetadata
Implemented SCIFIO FakeFormat

Translated the FakeReader for .fake files to SCIFIO components. In
addition to the standard components, this format includes a FakeHandle
class that can be used to construct RAIS objects (as these are the
underlying currency of SCIFIO) without forcing disk I/O.
Added protected zero-param RAIS constructor

Declared a protected zero-parameter RandomAccessInputStream constructor
allowing more freedom for subclassing.
Implemented RandomAccessInputStreamAdapter

Added a LegacyAdapter implementation for converting between legacy and
modern RandomAccessInputStream (RAIS) instances.

Because the existing legacy RAIS in loci.common already, essentially,
was a Wrapper of the modern RAIS, it was simply officially declared and
modified as such.
Updated auto-generated OME-XML classes

Used xsd-fu script to generate new ome-xml classes, from commit:
de62ebfd00823ef7518731fbda9cb1282f281fa6

Only non-model classes were generated (MetadataStore/Retrieve). Two
versions of each class were generated: a delegator and delegate in
loci.formats and ome.xml.meta respectively, to preserve backwards
compatibility.
Reworked AdapterTools mechanics

First, instead of maintaining a static function returning a queried
Adapter, a non-static class was created, and AdapterTools maintains a
static reference to a single instance of this helper class.

Second, instead of creating a list of adapters and only using what's on
it, if a queried adapter isn't found, a new instance is created and
mapped. This allows adapters to be defined downstream of AdapterTools
without any explicit discovery mechanism.
Converted SCIFIOReaderAdapter to a LegacyAdapter

SCIFIOReaderAdapter now follows the LegacyAdapter pattern. To facilitate
this, the old SCIFIOReaderAdapter logic was moved to the more
appropriately named SCIFIOReaderWrapper (as this class was wrapping an
IFormatReader).

SCIFIOReaderAdapter can now be used to freely interchange legacy
IFormatReaders with SCIFIO Readers.
Refactored FormatTools to use AdapterTools

As AdapterTools can now support IFormatReaders via the
SCIFIOReaderAdapter, FormatTools was updated to be fully backwards
compatibile via this adapter usage.
Updated MetadataTools to use AdapterUtils

MetadataTools now uses AdapterUtils to facilitate delegation between
legacy and modern classes, preserving backwards compatibility.
Refactored AWTImageTools to use AdapterTools

AWTImageTools now uses the AdapterTools pattern of maintaining backwards
compatibility, taking advantage of the SCIFIOReaderadapter class.
Implemented CoreMetadataAdapter

Created a CoreMetadataAdapter and CoreMetadataWrapper to follow the
LegacyAdapter pattern of maintaining backwards compatibility.

Currently only the Legacy to Modern direction of wrapping is supported.

The SCIFIOReaderWrapper was updated to take advantage of this new
adapter.
fix:HACK: FormatTools getIndex/getZCTcoords don't bypass wrappers
fix:HACK: added sezpoz .factorypaths