PERF: Indexing a multi-index is a lot slower
Indexing a multi-index seemingly went from O(1) to O(N):

![bug](https://user-images.githubusercontent.com/123696/73701369-91a13c80-46a6-11ea-8335-6a8e7a3f7dca.png)

I did a bisect, and found this was caused by the `_shallow_copy` here: https://github.com/pandas-dev/pandas/commit/b0f33b3f40d5742531e31aef90573b9592489592#diff-4ffd1c69d47e0ac9f2de4f9e3e4a118cR643.

#### Code Sample

```python
from time import perf_counter as time
import pandas as pd

for N in [1000, 2000, 4000, 8000, 16000, 32000]:
	values = list(range(N))
	df = pd.DataFrame({ 'a': values })
	df['b'] = 1
	df.set_index(['a', 'b'], inplace = True)

	t = time()
	df.loc[values]
	t = time() - t
	print(N, t)
```