REF: implement indexes.extension to share delegation
In following steps, I plan to

- remove the DatetimeDelegateMixin entirely and just use inherit_names
- de-duplicate the slightly-different comparison method code from CategoricalIndex vs DatetimelikeIndex
- move the remaining wrapping utilities from datetimelike to extension.py, after double-checking if we can remove any layers
- delegate more methods, some of which depends on smoothing out small idiosyncrasies, e.g. #30627.
k merge on green. green thanks