[RFC] Add levelsmap

This implements a variant of `indexmap` that maps the `n` unique elements of an `AbstractArray` to the numbers `1` through `n`.

The name `levelsmap` was chosen instead of `uniquemap` to be consistent with a distinction in DataArrays between `unique`, which can include `NA`, and `levels`, which never includes `NA`.

Please ignore the stupid branch name I chose.