Axes: refactor to static utilty class

Having Axes as an enum, even an extensible enum, was not overly helpful.
Because ultimately most operations are on AxisType itself, you can only
take advantage of the Axes enum if you type everything as an Axes, which
then excludes any other AxisType implementation.

Instead, it makes more sense to just use AxisType and turn Axes into a
static utility class that defines a set of AxisTypes. This allows us to
reuse the extensibility logic in that consumers (other static utility
classes) can now invoke the get(label) method of Axes to define new
AxisType constants, which are then stored centrally.

Axes now defines the core XYZCT axes, with the more "specialty" axes
moved to SCIFIO.

Tests were updated as needed to reflect the removed AxisTypes and new
DefaultAxisType class.
AxisType: Deprecated isXY and isSpatial

Fundamentally, AxisTypes should not be defined by their label. The label
uniquely identifies and distinguishes axes and these methods are tied to
a 5D model, where X and Y are significant and XYZ are spatial.

To move to an N-D model, what really matters is the order of the axes
and the number of planar axes. Thus isXY and isSpatial would become
unnecessary.

These methods are thus deprecated and when conversion of consuming
(SCIFIO) code to an N-D model is complete, and propagated downstream
(e.g. to IJ2), these methods can be removed.