REF/PERF: dont use hashtable in IndexEngine.__contains__
- [ ] closes #xxxx
- [ ] tests added / passed
- [ ] Ensure all linting tests pass, see [here](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#pre-commit) for how to run them
- [ ] whatsnew entry

This is going to have some tradeoffs:

```
import pandas as pd
import numpy as np

idx = pd.Index(np.arange(1000))
idx2 = idx.repeat(2)

In [5]: %timeit 400.0 in idx
1.27 µs ± 46.8 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)  # <- master
421 ns ± 3.81 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)  # <- PR

In [6]: %timeit idx.get_loc(400)
1.11 µs ± 49.9 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)  # <- master
625 ns ± 49.8 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)   # <- PR

In [6]: 400 in idx2
1.05 µs ± 24.4 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)  # <- master
1.85 µs ± 43.7 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)  # <- PR

In [7]: %timeit idx2.get_loc(400)
3.43 µs ± 309 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)  # <- master
2.07 µs ± 52.1 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)  # <- PR
```
i think this is fine cc @phofl if comments can you merge master. cc @phofl if comments. rebased + green