REF: call _maybe_cast_indexer upfront, better exception messages
This will actually allow us to remove e.g. CategoricalIndex.get_loc by moving the 2 relevant lines into CategoricalIndex._maybe_cast_indexer.  Large parts of DTI/TDI/PI.get_loc will also be simplifiable.

We've got both Index._maybe_cast_indexer and Index._convert_scalar_indexer which hopefully we'll only need one of.