Axes/AxisType: refactor API for grouping

Previously, the AxisType interface had a basic consideration of grouping
via the "isXY" and "isPlanar" methods. However, these methods were
limiting and not easily extensible, and the singleton nature of Axes
prevented use of multiple axes with different grouping (e.g. an
Axes.CHANNEL that is a planar axis, and one that is a color axis).

To enhance the API, a general "group" flag was added to AxisType, with
the specific XY/planar methods removed.

Axes was refactored to use three basic grouping classifications: planar,
extended and color. The core enumeration values have default groupings,
but convenience methods were added to generate AxisTypes with the same
label but custom groupings (and the API for custom labels was
preserved).

Axis retrieval is unchanged, but axes are now uniquely defined by label
and group, instead of just label.

Resolves issue #30.