PERF: casting loc to labels dtype before searchsorted
Intrigued by the profiling results of the below example (Multi-index `loc` indexing, based on the example in https://github.com/pandas-dev/pandas/issues/14549), where `searchsorted` seemed to take the majority of the computation time. 
And it seems that `searchsorted` casts both inputs (in this case `labels` and `loc`) to a common dtype, and the `labels` of the MultiIndex were in this case `int16`, while `loc` (output from `Index.get_loc`) is a python int.

By casting `loc` to the dtype of `labels`, the specific example gets a ca 20 x speed improvement

```
df = pd.DataFrame({'a': np.random.randn(500*5000)}, index=pd.MultiIndex.from_product([date_range("2014-01-01", periods=500), range(5000)]))
dt = pd.Timestamp('2015-01-01')
%timeit df.loc[dt]
```

On master:
```
In [3]: %timeit df.loc[dt]
The slowest run took 5.70 times longer than the fastest. This could mean that an intermediate result is being cached.
100 loops, best of 3: 9.39 ms per loop
```

with this PR:
```
In [3]: %timeit df.loc[dt]
The slowest run took 122.51 times longer than the fastest. This could mean that an intermediate result is being cached.
1000 loops, best of 3: 422 µs per loop
```

Just putting it here as a showcase. 
Actual PR probably needs some more work (other places where this can be done, can loc ever be out of bound for that dtype?, benchmarks, ..)

## [Current coverage](https://codecov.io/gh/pandas-dev/pandas/pull/14551?src=pr) is 85.26% (diff: 100%)

> Merging [#14551](https://codecov.io/gh/pandas-dev/pandas/pull/14551?src=pr) into [master](https://codecov.io/gh/pandas-dev/pandas/branch/master?src=pr) will increase coverage by **<.01%**

``` diff
@@             master     #14551   diff @@
==========================================
  Files           140        140          
  Lines         50672      50676     +4   
  Methods           0          0          
  Messages          0          0          
  Branches          0          0          
==========================================
+ Hits          43207      43211     +4   
  Misses         7465       7465          
  Partials          0          0          
```

> Powered by [Codecov](https://codecov.io?src=pr). Last update [60a335e...6447e4c](https://codecov.io/gh/pandas-dev/pandas/compare/60a335e457bc40d009d5be99b384a62fa34ba3fc...6447e4c6c561fab2b249f2323dc368c0da13c97a?src=pr)
 lgtm. just release note. I think this can only help :>
 OK, added whatsnew notice. Will merge, but will open a new issue for follow-up on this (other cases, benchmarks that capture this (at the moment there are none)).
