Added loci-legacy component

This is the second in 2 commits to preserve backwards compatibility
within the loci.common packages.

All loci.common classes within the loci-legacy component have
been converted to delegator classes, which pass functionality to the
maintained ome.scifio equivalents.

This change ialso includes maven and ant targets, making
loci-legacy fully functional.

Conflicts:

	components/loci-legacy/src/loci/common/AbstractNIOHandle.java
	components/loci-legacy/src/loci/common/BZip2Handle.java
	components/loci-legacy/src/loci/common/ByteArrayHandle.java
	components/loci-legacy/src/loci/common/CBZip2InputStream.java
	components/loci-legacy/src/loci/common/CRC.java
	components/loci-legacy/src/loci/common/Constants.java
	components/loci-legacy/src/loci/common/DataTools.java
	components/loci-legacy/src/loci/common/DateTools.java
	components/loci-legacy/src/loci/common/DebugTools.java
	components/loci-legacy/src/loci/common/FileHandle.java
	components/loci-legacy/src/loci/common/GZipHandle.java
	components/loci-legacy/src/loci/common/HandleException.java
	components/loci-legacy/src/loci/common/IRandomAccess.java
	components/loci-legacy/src/loci/common/IniList.java
	components/loci-legacy/src/loci/common/IniParser.java
	components/loci-legacy/src/loci/common/IniTable.java
	components/loci-legacy/src/loci/common/IniWriter.java
	components/loci-legacy/src/loci/common/Location.java
	components/loci-legacy/src/loci/common/NIOByteBufferProvider.java
	components/loci-legacy/src/loci/common/NIOFileHandle.java
	components/loci-legacy/src/loci/common/NIOInputStream.java
	components/loci-legacy/src/loci/common/RandomAccessInputStream.java
	components/loci-legacy/src/loci/common/RandomAccessOutputStream.java
	components/loci-legacy/src/loci/common/ReflectException.java
	components/loci-legacy/src/loci/common/ReflectedUniverse.java
	components/loci-legacy/src/loci/common/Region.java
	components/loci-legacy/src/loci/common/StatusEvent.java
	components/loci-legacy/src/loci/common/StatusListener.java
	components/loci-legacy/src/loci/common/StatusReporter.java
	components/loci-legacy/src/loci/common/StreamHandle.java
	components/loci-legacy/src/loci/common/URLHandle.java
	components/loci-legacy/src/loci/common/ZipHandle.java
	components/loci-legacy/src/loci/common/enumeration/CodedEnum.java
	components/loci-legacy/src/loci/common/enumeration/EnumException.java
	components/loci-legacy/src/loci/common/services/AbstractService.java
	components/loci-legacy/src/loci/common/services/DependencyException.java
	components/loci-legacy/src/loci/common/services/OMENotesService.java
	components/loci-legacy/src/loci/common/services/Service.java
	components/loci-legacy/src/loci/common/services/ServiceException.java
	components/loci-legacy/src/loci/common/services/ServiceFactory.java
	components/loci-legacy/src/loci/common/xml/BaseHandler.java
	components/loci-legacy/src/loci/common/xml/ParserErrorHandler.java
	components/loci-legacy/src/loci/common/xml/ValidationErrorHandler.java
	components/loci-legacy/src/loci/common/xml/XMLTools.java
Removed common component directory

With the loci-legacy component fully functional and all
loci.common classes in development migrated to ome.scifio packages,
there is no need for the common component.
Updated bio-formats utils imports

As these are actively developed classes, all the bio-formats utils
classes should depend on the ome.scifio common-equivalent classes
instead of loci.common.*.

These imports have been updated.
Added services.properties to scifio.jar

Updated SCIFIO's build.properties so that ant targets will include
services.properties in scifio.jar.
Added missing logging jars to loci-plugins

Updated the loci-plugins build.properties with necessary logging jars.
Set up CaseInsensitiveLocation delegation

Moved functional code to ome.scifio.io.CaseInsensitiveLocation

Updated loci.common.Location delegator to use a protected
ome.scifio.io.Location for delegation, to allow visibility for extending
classes (such as CaseInsensitiveLocation).

loci.common.CaseInsensitiveLocation now delegates to its ome.scifio.io
equivalent.
Add loci-common POM project, for compatibility

This component provides backwards build compatibility for projects
structured to use the old loci-common.jar. All code from loci-common has
migrated to the scifio-devel component, under new package names
(ome.scifio.common, ome.scifio.enumeration, ome.scifio.io,
ome.scifio.services and ome.scifio.xml). A new bio-formats-legacy
component provides delegator classes with the old package name
(loci.common.*) for backwards compatibility.

This loci-common component is merely a copy of bio-formats-legacy.jar,
and is intended for use with projects that cannot (or do not have time
to) update their build systems to reference bio-formats-legacy instead.
  * Existing projects with control over their build systems should
    remove loci-common and add bio-formats-legacy as a dependency, which
    will provide them with backwards compatibility to the old packages.
  * New projects, and existing projects with control over their source
    code, do not need loci-common or bio-formats-legacy at all, but
    rather should update their package names from the old
    (loci.common.*) to the new (ome.scifio.common.* et. al).
Added loci-common ant target

Ant build systems can use the jar-common target to build a
loci-common.jar.

This jar is just a direct copy of the loci-legacy jar.
Ant tools builds loci-common.jar

the ant tools target will now build the dummy loci-common.jar, to
preserve backwards compatibility.
Added legacy adapter interfaces/abstract classes

Introduces the loci.legacy.adapter package, which contains the classes
that any adapter between SCIFIO and legacy classes will implement or
extend.

Adapters are intended to be bi-directional: intelligently
wrapping/unwrapping to provide the appropriate class, as desired.
Added adapters for loci-common interfaces

To preserve backwards compatibility, loci.common interfaces can not
extend ome.scifio interfaces, as method signatures in ome.scifio may
require ome.scifio parameters (while downstream code is still trying to
pass loci.common arguments).

As interfaces can not contain implementation, the solution is to keep
the loci.common interfaces unchanged, but implement a series of
adapter classes which can manage translation from a loci.common to
ome.scifio interface, and vice versa.

Thus legacy code will be preserved, but to use the latest scifio classes
code changes introducing the adapters (or directly coding against
ome.scifio) will be necessary for these interfaces and their
implementations.
Added static AdapterTools utility

All adapters maintain a mapping between legacy and modern classes. To
avoid duplication of these classes, and thus the maps (which would not
necessarily be synchronized) it makes sense to have a single active
instance of each adapter. These instances can then be accessed via a
single static entry point.

AdapterTools serves as that entry point. It uses a static initializer to
populate its mapping of adapter classes to adapter instances, and
getAdapter(Clas<Adapter>) to query into that mapping.

Note that future adapters must be manually added to the static
initializer, or adapters need to be converted to some mechanism of
discovery.
Added adapter calls to legacy layer

All legacy classes that needed to convert from loci.common classes to
ome.scifio classes now make the proper AdapterTools invocations.
Fixed return type on ServiceFactory

common.services.ServiceFactory now returns a
loci.common.services.Service instead of ome.scifio.services.

To accomplish this for now the Service interface has to directly extend
ome.scifio.services.Service.

This is not ideal (see legacy adapter package) but seems to be necessary
because of the class checking performed in ServiceFactory.
Added Object delegation to all loci-legacy classes

To ensure proper functionality, all loci-legacy classes now delegate
down to Object mehtods.
Added OMENotesService extension

loci.common.services.OMENotesService now extends both
loci.common.services.Service and ome.scifio.services.OMENotesService to
ensure that it is valid in both SCIFIO and legacy contexts.
Updated build commands for loci-legacy
Duplicate loci-legacy tests from scifio-devel

As loci-legacy currently mirrors scifio-devel, all the tests from
scifio-devel are appropriate to run from loci-legacy (under the correct
packages).

These tests should simply delegate to the scifio-devel classes, and will
help to ensure backwards compatibility.
DependencyException now extends instead of wraps

The loci.common.serivces DependencyException now extends its target.
Updated throw statements as appropriate.
Added scifio-devel/loci-legacy jars to SCIFIO

Several targets in the SCIFIO build.properties were missing necessary
jars for scifio-devel/loci-legacy dependencies.