BUG: inconsistent validation for get_indexer
By putting all the validation up-front, we'll be able to safely move some short-circuiting checks from the subclasses _get_indexer methods up to the single get_indexer method