BUG: Groupby and apply fails quietly for str columns
- [x] I have checked that this issue has not already been reported.

- [x] I have confirmed this bug exists on the latest version of pandas.

- [ ] (optional) I have confirmed this bug exists on the master branch of pandas.

---

The groupby - apply functionality breaks for string columns if within an apply a new column is assigned and a choice of columns is returned. Short example:

```python
import numpy as np
import pandas as pd
data = pd.DataFrame()
data["foo"] = np.repeat(["person", "woman"], 3)
data["bar"] = np.repeat(["camera", "TV"], 3)
data["number"] = np.repeat([99,88], 3)
data["id"] = np.arange(6)
```

```python
	foo	bar	number	id
0	person	camera	99	0
1	person	camera	99	1
2	person	camera	99	2
3	woman	TV	88	3
4	woman	TV	88	4
5	woman	TV	88	5
```

Let's define a test function which simply adds another column and returns the original DataFrame when applied:

```python
def testfunc1(df):
    df["added"] = "bazinga"
    return df

data.groupby("bar").apply(testfunc1)
```

```python
	foo	bar	number	id	added
0	person	camera	99	0	bazinga
1	person	camera	99	1	bazinga
2	person	camera	99	2	bazinga
3	woman	TV	88	3	bazinga
4	woman	TV	88	4	bazinga
5	woman	TV	88	5	bazinga
```

Behaves just like it should, this is the expected output. However, redefining this test function to return a specific set of columns returns this unexpected output:

```python
def testfunc2(df):
    df["added"] = "bazinga"
    return df[["foo", "bar", "number", "id", "added"]]

data.groupby("bar").apply(testfunc2)
```
```python
	foo	bar	number	id	added
0	woman	TV	99	0	bazinga
1	woman	TV	99	1	bazinga
2	woman	TV	99	2	bazinga
3	woman	TV	88	3	bazinga
4	woman	TV	88	4	bazinga
5	woman	TV	88	5	bazinga
```

All information in string columns is overwritten with one specific value, while the behaviour for numeric columns carries the original values just as expected.

This was run on pandas version 1.2.1
