MultiIndex names attribute broken when using set_value() to expand DataFrame()
I have raised the issue in [this question](http://stackoverflow.com/questions/15621143/pandas-df-set-value-method-erases-resets-column-names-of-multiindex/15624426#15624426) on Stack Overflow, but I'm not sure it ever made it to the Pandas issue tracker.

I have a MultiIndex'ed DataFrame which I want to expand by using `set_value()`, but doing this destroys the `names` attribute of the index. This does not happen when setting the value of an already existing entry in the DataFrame. An easily reproducible example is to create the dataframe by:

``` python
lev1 = ['hans', 'hans', 'hans', 'grethe', 'grethe', 'grethe']
lev2 = ['1', '2', '3'] * 2
idx = pd.MultiIndex.from_arrays(
    [lev1, lev2], 
    names=['Name', 'Number'])
df = pd.DataFrame(
    np.random.randn(6, 4),
    columns=['one', 'two', 'three', 'four'],
    index=idx)
df = df.sortlevel()
df 
```

This shows a neat and nice object, just as I expected, with proper naming of the index columns. If I now run:

``` python
df.set_value(('grethe', '3'), 'one', 99.34)
```

the result is also as expected. But if I run:

``` python
df.set_value(('grethe', '4'), 'one', 99.34)
```

The column names of the index are gone, and the `names` attribute has been set to `[None, None]`.
