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).

This does shift the responsibility for maintaining lists of AxisTypes to
consumers of this API, but should allow for much more accurate modeling
of axes and their roles.

Resolves issue #30.