Hierarchical indexes not updated correctly after columns are dropped.
Simple example:

I have a dataframe with a few columns I wish to remove, I do this:

``` python
index = MultiIndex.from_tuples([('Test',n) for n in range(10)])
a = DataFrame(np.ones((10,10)), index)
a = a.drop(index[0:4])

a.index
Out[149]: 
MultiIndex([('Test', 4), ('Test', 5), ('Test', 6), ('Test', 7), ('Test', 8),
       ('Test', 9)], dtype=object)
#  Correct, expected_output

a.index.levels[1]
Out[151]: Int64Index([0, 1, 2, 3, 4, 5, 6, 7, 8, 9], dtype=int64)
# In the level 1 index the index of the dropped columns are still present, they haven't been dropped.
```

I have a very very hackish fix that works - obviously inelegant:

``` python
a.index = MultiIndex.from_tuples(a.index.tolist())
```
