ENH: implement _should_compare/_is_comparable_dtype for all Index subclasses
Fixes some problems in get_indexer_non_unique that AFAICT are not actually causing any problems.

Categorical kludge is needed because of #38240.
de-duplicate away!