BUG: better exception on invalid slicing on CategoricalIndex
After fixing the CategoricalIndex behavior (first commit), the "kind" keyword is no longer needed in _maybe_cast_slice_bound, so removed that.

After this the keyword is no longer needed in get_slice_bound, slice_locs, slice_indexer, but those are technically public so didnt rip them out.
cc @TomAugspurger docbuild looks like dask is using _maybe_cast_slice_bound

```
~/miniconda3/envs/pandas-dev/lib/python3.8/site-packages/dask/dataframe/indexing.py in _maybe_partial_time_string(index, indexer, kind)
    352     if isinstance(indexer, slice):
    353         if isinstance(indexer.start, str):
--> 354             start = index._maybe_cast_slice_bound(indexer.start, "left", kind)
    355         else:
    356             start = indexer.start

TypeError: _maybe_cast_slice_bound() takes 3 positional arguments but 4 were given
```