PERF: Index.get_loc
Makes a big difference for Float64Index with integer key.

```
import numpy as np
import pandas as pd

idx = pd.Index(np.arange(10**7))
fidx = idx.astype('f8')


key = idx[len(idx) // 2]
key2 = idx[10]

%timeit idx.get_loc(key)
2.97 µs ± 36.2 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)  # <- master
2.3 µs ± 36.3 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)  # <- PR

%timeit idx.get_loc(key2)
3.2 µs ± 151 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)  # <- master
2.1 µs ± 140 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)  # <- PR

%timeit fidx.get_loc(key)
56.4 µs ± 1.22 µs per loop (mean ± std. dev. of 7 runs, 10000 loops each)  # <- master
2.11 µs ± 11.1 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)  # <- PR

%timeit fidx.get_loc(key2)
54.7 µs ± 1.12 µs per loop (mean ± std. dev. of 7 runs, 10000 loops each)  # <- master
2 µs ± 21.7 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)  # <- PR

```