PERF: custom ops for RangeIndex.[all|any|__contains__]
- [x] xref #26565
- [x] tests added / passed
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [ ] whatsnew entry

Follow-up to #26565. Make ``RangeIndex._data`` be created in fewer cases.

Performance examples (but the larger gain is from memory savings by not creating the ``_data`` array):

```python
>>>  rng = pd.RangeIndex(-5_000_000, 0, 6)
>>> %timeit rng.all()
789 µs ± 5.24 µs per loop  # master
216 ns ± 0.957 ns per loop  # this PR
>>> %timeit rng.any()
763 µs ± 6.08 µs per loop  # master
124 ns ± 9.15 ns per loop  # this PR
>>> %timeit (-2 in rng)
380 ns ± 1.85 ns per loop  # master
689 ns ± 44.7 ns per loop  # this PR, slightly slower
```
