Axes: restore "values" functionality

As Axes used to be an enum, it had an implicit "values" method, which
was lost in conversion to a static utility class.

Added a "knownValues" method which now returns an array of all known
AxisTypes.
DefaultAxisType: restore inherited interfaces

The CustomAxis class that DefaultAxisType replaced was nested under the
former Axes enum, which caused it to inherit Serializable and Comparable
implicitly through the Enum type hierarchy.

To restore these API contracts, DefaultAxisType now explicitly
implements Serializable and Comparable<AxisType>.
Merge branch 'restore-axes-methods'

Several implicit contracts regarding Axes and Axes$CustomAxis were lost in the
conversion to a static utility class.

This patch restores those API contracts to facilitate backwards compatibility.