POM: bump snapshot version to 0.10.0-SNAPSHOT

After this point, there will be several structural changes; in
particular, some packages will migrate from imagej-common to imagej-ops.
Add additional imglib2-meta-related classes

There were three foundational classes of the imglib2-meta code, but
which were placed in ImgLib2 core. At the October 2014 Madison ImgLib2
hackathon, it was decided to migrate them out of core. So they live here
now, transitionally. Later, we will recast the whole net.imglib2.meta
codebase as part of net.imagej, unifying some concepts -- in particular:
net.imglib2.meta.ImgPlus and net.imagej.Dataset.
Deprecate old net.imglib2.meta code

Most of these classes are actually exactly what we want, but they will
move to a new package. So, usage of the classes with the net.imglib2
package prefix is deprecated.
POM: tweak whitespace

This makes "mvn tidy:pom" happy.
Remove net.imagej.measure and net.imagej.operator

These packages have migrated to imagej-ops, deprecated, since they
are slated to be converted to use the new ImageJ OPS framework.

This move helps avoid a dependency on the obsolete imglib2-ops project.
Remove net.imagej.threshold

This package has migrated to imagej-ops, deprecated, since it has been
ported to the new ImageJ OPS framework as net.imagej.ops.threshold.

This move helps avoid a dependency on the obsolete imglib2-ops project.
AxisSubrange: eliminate usages of net.imglib2.ops

Instead, we define an equivalent (but more strongly typed) data
structure. The code could still benefit from further streamlining, but
this achieves our immediate goal of breaking imglib2-ops dependence.
DefaultOverlayService: eliminate PointSet usage

The RoiPointSet is cool, allowing you to express a RegionOfInterest
(which is a RealRandomAccessible) as an IterableInterval. But actually,
we can do the same thing using Views, via the raster, interval and
iterable methods.

Admittedly, it would be nice if Views had one or two more built-in
methods to facilitate this (particularly computing the Interval's
min/max bounds). Perhaps we can contribute that logic upstream later.
Move cast from test class into the correct spot

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
POM: update to the ImgLib2 2.0.1 release

This makes the necessary code changes to account for backwards
incompatibilities.

It also updates several dependencies to their latest versions,
and removes the obsolete imglib2-ops dependency.
POM: add missing UDUNITS dependency

Everything still built because the dependency was inherited
transitively from io.scif:scifio. But we will be removing the
SCIFIO dependency soon, and we do directly need edu.ucar:udunits.
Avoid using SCIFIO in imagej-common's tests

Curtis says this is bad, bad, bad.

Actually, he said that the hierarchy is being restructured and that
imagej-common should be upstream of both SCIFIO and ImageJ-OPS, and it
all makes sense, but that is not half as funny a commit message.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
DatasetService: deprecate almost-obsolete methods

This deprecation is in preparation for the removal of the SCIFIO
dependency from imagej-common (the dependency is being inverted).

Ultimately, logic for opening up Datasets needs to live in SCIFIO, not
imagej-common. (And alternately, a more agnostic way of opening and
saving Datasets can be had using the org.scijava.io.IOService.)
POM: bump to pom-imagej 3.1

Among other things, this bumps the version of scijava-common to 2.35.0,
giving us access to the org.scijava.util.ReflectedUniverse utility
class, which we will make use of shortly.
Remove compile-time usages of SCIFIO

Some I/O-related DatasetService methods exposed SCIFIO types
(specifically: io.scif.Metadata and io.scif.config.SCIFIOConfig) in
their API. Those references have been generalized to Object. This will
break backwards compatibility mostly for those calling "save" and
expecting the return value to be typed as Metadata rather than Object.

The DefaultDatasetService employed SCIFIO in its canOpen, canSave, open
and save methods. That usage has been wrapped via reflection, so that if
SCIFIO is present on the classpath, the methods will continue to work as
before, while avoiding a compile-time dependency on SCIFIO. This
approach is temporary, until those deprecated methods are removed in
favor of a better solution.

See also:
https://github.com/scijava/scijava-common/compare/robust-io
POM: remove no-longer-needed SCIFIO dependency

The io.scif:scifio project will now depend on imagej-common, instead
of the other way around. The rationale is that the ImageJ library
(net.imagej:imagej-common) is the place the adds metadata richness on
top of the ImgLib2 library (net.imglib2:imglib2). And the SCIFIO
library (io.scif:scifio) is built on top of that metadata richness.

For details, see:
http://imagej.net/Architecture
Remove the DatasetIOPlugin

It is migrating to SCIFIO:
https://github.com/scifio/scifio
Merge branch 'imglib2-2.0.1'

This branch brings imagej-common up to snuff for the ImgLib2 release:

* It makes the necessary code changes to adjust for
  backwards incompatibilities in ImgLib2.
* It removes the dependency on io.scif:scifio, since that project will
  now depend on imagej-common instead of vice versa.