index.set_levels produces weird results when index is repetative
My understanding of how multiindexes work is fuzzy, but as far as I can tell set_levels isn't updating the labels properly. The example probably explains better than I can:
#### Code

``` python
df = pd.DataFrame(data = ["foo","bar"])
df2 = pd.concat([df,df,df],keys = ["a","b","c"])
print df2
newIndex = df2.index.get_level_values(0).map(lambda x:x + "!")
df2.index.set_levels(newIndex,level=0,inplace=True)
print df2
```
#### Expected Output

```
       0
a 0  foo
  1  bar
b 0  foo
  1  bar
c 0  foo
  1  bar
        0
a! 0  foo
   1  bar
b! 0  foo
   1  bar
c! 0  foo
   1  bar
```
#### Actual Output

```
       0
a 0  foo
  1  bar
b 0  foo
  1  bar
c 0  foo
  1  bar
        0
a! 0  foo
   1  bar
   0  foo
   1  bar
b! 0  foo
   1  bar
```
#### output of `pd.show_versions()`

```
INSTALLED VERSIONS
------------------
commit: None
python: 2.7.6.final.0
python-bits: 64
OS: Linux
OS-release: 4.3.0-040300-generic
machine: x86_64
processor: x86_64
byteorder: little
LC_ALL: None
LANG: en_US.UTF-8

pandas: 0.18.0
nose: None
pip: 8.1.1
setuptools: 20.3.1
Cython: None
numpy: 1.11.0
scipy: 0.17.0
statsmodels: None
xarray: None
IPython: 4.0.0
sphinx: None
patsy: None
dateutil: 2.5.3
pytz: 2015.7
blosc: None
bottleneck: None
tables: 3.2.2
numexpr: 2.5.2
matplotlib: 1.5.0
openpyxl: None
xlrd: None
xlwt: None
xlsxwriter: None
lxml: None
bs4: None
html5lib: None
httplib2: 0.8
apiclient: None
sqlalchemy: None
pymysql: None
psycopg2: None
jinja2: 2.8
boto: None
```
