PERF: add method Categorical.__contains__
- [x] closes #21022 
- [x] xref #21369
- [x] tests added / passed
- [x] benchmark added / passed
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [x] whatsnew entry

Currently, membership checks in ``Categorical`` is very slow as explained by @fjetter in #21022. This PR fixes the issue. See also #21369 which fixed the similar issue for ``CategoricalIndex``.

Tests didn't exist beforehand and have been added.

ASV:

```
      before           after         ratio
     [9e982e18]       [28461f0c]
-      4.26±0.7ms         134±20μs     0.03  categoricals.Contains.time_categorical_contains

SOME BENCHMARKS HAVE CHANGED SIGNIFICANTLY.
```