Axes/AxisType: refactor API for grouping

Refactors Axes/AxisType to add an extensible grouping option, beyond just "isXY" and "isPlanar". Groups are now arbitrary strings (although three static group constants are provided). Although each Axes enumeration has a default grouping, convenience methods are provided to create any base axis with a custom grouping.

AxisTypes are now identified based on their label + group combination, although unknown axes are still always unique.

Resolves issue #30, although I did not split out the AxisTypes that weren't used in ImgLib. I decided not to because  defining custom axis enumerations in consumers (e.g. SCIFIOAxisTypes containing Frequency, Phase, etc...) requires re-implementing all AxisType interface methods, since a common abstract class can't be extended.

This kind of defeats the purpose of extensibility. So I think it's fine to just use Axes.get when necessary.