CLN: reduce overhead in setup for categoricals benchmarks in asv
The setup functions for the `categoricals.CategoricalSlicing` suite have ~40s of overhead that can be eliminated by two approaches:

- Use `pd.CategoricalIndex.from_codes()` instead of `pd.CategoricalIndex()`
  - ~30s of the speedup comes from this
- Replace the dict of all cases with an `if`/`else` block to minimize unnecessary construction
  - Another ~10s speedup from this

Before:
```
$ time asv dev -b CategoricalSlicing
[...]
real    1m3.747s
user    0m46.250s
sys     0m15.141s
```

After:
```
$ time asv dev -b CategoricalSlicing
real    0m23.893s
user    0m14.578s
sys     0m6.578s
```

- [ ] closes #xxxx
- [ ] tests added / passed
- [ ] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [ ] whatsnew entry
