Feature Request: Allow new column setting via attribute assignment
One "gotcha" in pandas that's always bugged me is that you can generally access and change columns in a DataFrame by dot-messaging (attribute assignment) _except_ for adding new columns. For example, one can play with existing columns easily:

```
df = pd.DataFrame({'col1':range(10,14),
                   'col2':range(20,24)})

df.col1 = 3
df
Out[5]: 
   col1  col2
0     3    20
1     3    21
2     3    22
3     3    23
```

But you can't set new columns:

```
df.col3 = pd.Series(range(30,40))
df

Out[6]: 

   col1  col2
0     3    20
1     3    21
2     3    22
3     3    23
```

Seems like it wouldn't be hard to modify `__setattr__` so that if the setting value is a Series, NumPy Array, or scalar value, just call `df[key] = value`.

Seem reasonable?

(Still wrestling with copy-on-write PR, but happy to come back to this if others support and no on addresses till then)
