PERF: optimize index.__getitem__ for slice & boolean mask indexers
TST: make sure index type doesn't change
ENH: remove special handling for empty keys in Index.__getitem__