DataFrame.insert not working properly
For some reason I am just ending up with `NaT`s:

```
def get_month(x):
        return x.replace(day=1)

p1 = pd.DataFrame({ 'Baz':[100]}, index=[pd.Timestamp('2010-05-13')])
p2 = p1.copy()
p2.insert(1, "Month", p1.reset_index()['index'].apply(get_month))
p2
Out[1]: 
            Baz Month
2010-05-13  100   NaT
```

the apply does work:

```
In [2]: p1.reset_index()['index'].apply(get_month)
Out[2]: 
0   2010-05-01 00:00:00
Name: index, dtype: datetime64[ns]
```
