REF: implement Categorical._validate_listlike
I found it really confusing why we used slightly different dtype-comparisons in a bunch of different places (e.g CategoricalIndex.get_indexer vs CategoricalIndex.get_indexer_non_unique).  AFAICT It's just a matter of optimizations accruing over time without a helper method to keep them in sync. 