weird behaviours with tuples in index
I'm not submitting this strictly as a bug because this is so messed up that I seriously consider tuples in indexes just simply never work, but I don't think the docs are clear about it.

I'm using python 3.6.9 and pandas==1.1.3.

Example 1:
```
import pandas as pd                                                             
data = {                                                                        
    'first':  [[(0,), 0, 0], [(1,), 1, 1], [(2,), 2, 2]],                       
    'second': [[(0,), 0, 0], [(1,), 1, 1], [(1,), 2, 2]],                       
}                                                                               
for name, d in data.items():                                                    
    df = pd.DataFrame(d, columns=['a', 'b', 'c']).set_index('a')                
    print(name)                                                                 
    print(df)                                                                   
    print(df.index.get_loc((0,))) 
```

works for `first` and not for `second`:

```
first
      b  c
a         
(0,)  0  0
(1,)  1  1
(2,)  2  2
0
second
      b  c
a         
(0,)  0  0
(1,)  1  1
(1,)  2  2
Traceback (most recent call last):
  File "pandas/_libs/index.pyx", line 112, in pandas._libs.index.IndexEngine._get_loc_duplicates
TypeError: '<' not supported between instances of 'tuple' and 'int'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.6/dist-packages/pandas/core/indexes/base.py", line 2895, in get_loc
    return self._engine.get_loc(casted_key)
  File "pandas/_libs/index.pyx", line 70, in pandas._libs.index.IndexEngine.get_loc
  File "pandas/_libs/index.pyx", line 96, in pandas._libs.index.IndexEngine.get_loc
  File "pandas/_libs/index.pyx", line 116, in pandas._libs.index.IndexEngine._get_loc_duplicates
KeyError: (0,)

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "t3.py", line 10, in <module>
    print(df.index.get_loc((0,)))
  File "/usr/local/lib/python3.6/dist-packages/pandas/core/indexes/base.py", line 2897, in get_loc
    raise KeyError(key) from err
KeyError: (0,)
```

Example 2:

```
import pandas as pd                                                             
data = [[0, (1,2), (3,)], [1, (2,3), (4,5)]]                                    
a = pd.DataFrame(data, columns=['a', 'b', 'c']).set_index(['b', 'c'])           
                                                                                
print(a)                                                                        
                                                                                
print(a.loc[[a.index.values[0]]])                                               
print(a.loc[[a.index.values[1]]])
```

works for the first row only:
```
               a
b      c        
(1, 2) (3,)    0
(2, 3) (4, 5)  1
             a
b      c      
(1, 2) (3,)  0
Traceback (most recent call last):
  File "t2.py", line 8, in <module>
    print(a.loc[[a.index.values[1]]])
  File "/usr/local/lib/python3.6/dist-packages/pandas/core/indexing.py", line 879, in __getitem__
    return self._getitem_axis(maybe_callable, axis=axis)
  File "/usr/local/lib/python3.6/dist-packages/pandas/core/indexing.py", line 1099, in _getitem_axis
    return self._getitem_iterable(key, axis=axis)
  File "/usr/local/lib/python3.6/dist-packages/pandas/core/indexing.py", line 1037, in _getitem_iterable
    keyarr, indexer = self._get_listlike_indexer(key, axis, raise_missing=False)
  File "/usr/local/lib/python3.6/dist-packages/pandas/core/indexing.py", line 1240, in _get_listlike_indexer
    indexer, keyarr = ax._convert_listlike_indexer(key)
  File "/usr/local/lib/python3.6/dist-packages/pandas/core/indexes/multi.py", line 2388, in _convert_listlike_indexer
    _, indexer = self.reindex(keyarr, level=level)
  File "/usr/local/lib/python3.6/dist-packages/pandas/core/indexes/multi.py", line 2302, in reindex
    target = ensure_index(target)
  File "/usr/local/lib/python3.6/dist-packages/pandas/core/indexes/base.py", line 5618, in ensure_index
    return Index(index_like)
  File "/usr/local/lib/python3.6/dist-packages/pandas/core/indexes/base.py", line 385, in __new__
    return Int64Index(data, copy=copy, dtype=dtype, name=name)
  File "/usr/local/lib/python3.6/dist-packages/pandas/core/indexes/numeric.py", line 76, in __new__
    raise ValueError("Index data must be 1-dimensional")
ValueError: Index data must be 1-dimensional
```

