BUG: df.rename raises when multiindex has duplicates
```python
>>> idx = pd.Index([('A','cat'),('B','cat'),('B','cat')])
>>> df = pd.DataFrame(index=idx)
>>> df.rename(index={'A':'Apple'}, level=0)
ValueError: non-broadcastable output operand with shape (1,1) doesn't match the broadcast shape (1,2)
```