Assignment from/to MultiIndexed columns should probably be symmetric
This was counter-intuitive for me.

``` python
    N = 5
    columns = pd.MultiIndex.from_tuples([('a', 0), ('a', 1), ('b', 0), ('b', 1)])
    df1 = pd.DataFrame(np.random.rand(N, 4), columns=columns)
    df2 = pd.DataFrame(np.random.rand(N), columns=['c'])
    df1_copy = df1.copy()
    df2_copy = df2.copy()
    df1_copy[df2.columns] = df2
    df2_copy[df1.columns] = df1
    print "===== A ====="
    print df1_copy
    print
    print "===== B ====="
    print df2_copy
```

gives

```
===== A =====
          a                   b                   c
          0         1         0         1          
0  0.540405  0.814476  0.923961  0.935421  0.909791
1  0.679014  0.220417  0.511039  0.117898  0.282063
2  0.428563  0.915760  0.518118  0.780704  0.766191
3  0.928167  0.616540  0.151223  0.664102  0.037299
4  0.717449  0.453904  0.384850  0.953102  0.757288

===== B =====
          c    (a, 0)    (a, 1)    (b, 0)    (b, 1)
0  0.909791  0.540405  0.814476  0.923961  0.935421
1  0.282063  0.679014  0.220417  0.511039  0.117898
2  0.766191  0.428563  0.915760  0.518118  0.780704
3  0.037299  0.928167  0.616540  0.151223  0.664102
4  0.757288  0.717449  0.453904  0.384850  0.953102
```

I don't care about the ordering of the columns here; most of the time we are completely agnostic to that with pandas. What I _do_ care about is that the MultiIndex gets "flattened" in B.

Seems like a more desirable behavior would be to "promote" the target's column structure so that you always get A. That presents a tricky question about how to deal with complicated MultiIndex schemes on either side of the assignment, but at least for this basic case the current behavior feels wonky.
