Support for categorical ranges

Add categorical ranges, mappers, axes, and fix up interactions between categorical and non-categorical ranges in axes, etc.