DataFrame.apply returns Series of type object instead of correct dtype
#### Code Sample, a copy-pastable example if possible

```python
import pandas as pd
df = pd.DataFrame([[1.0, 2.0, 3.0, 'A'],
                   [1.0, 2.0, 2.0, 'A'],
                   [2.0, 4.3, 2.3, 'B'],
                   [6.5, 3.4, 2.1, 'B']],
                   columns=['n0', 'n1', 'n2', 'letter'])

def print_series_dtype(series):
    print(series.name, series.dtype)
    
def print_dataframe_dtypes(dataframe):
    print("DF dtypes:", list(dataframe.dtypes))
    print("DF colnames", list(dataframe.columns))
    dataframe.apply(print_series_dtype)

df.groupby('letter').apply(print_dataframe_dtypes)

# Output
DF dtypes: [dtype('float64'), dtype('float64'), dtype('float64'), dtype('O')]
DF colnames ['n0', 'n1', 'n2', 'letter']
n0 object
n1 object
n2 object
letter object


```
#### Problem description
DataFrame.gropby(..).apply(<func>) provides func with a series that has a dtype of object, regardless of the original dtype.

The code snippet above shows that the series dtype is mismatched. 

#### Expected Output
I would expect the dtypes to propagate unchanged. (in this case, it caused some downstream code to seriously misbehave).

#### Output of ``pd.show_versions()``
In [24]: pd.show_versions()

INSTALLED VERSIONS
------------------
commit: None
python: 3.7.0.final.0
python-bits: 64
OS: Windows
OS-release: 10
machine: AMD64
processor: Intel64 Family 6 Model 158 Stepping 10, GenuineIntel
byteorder: little
LC_ALL: None
LANG: None
LOCALE: None.None

pandas: 0.23.4
pytest: 3.8.2
pip: 19.0.3
setuptools: 40.2.0
Cython: 0.29.7
numpy: 1.15.2
scipy: 1.1.0
pyarrow: 0.11.1
xarray: None
IPython: 7.3.0
sphinx: None
patsy: None
dateutil: 2.7.3
pytz: 2018.5
blosc: None
bottleneck: None
tables: 3.4.4
numexpr: 2.6.8
feather: None
matplotlib: 3.0.0
openpyxl: None
xlrd: None
xlwt: None
xlsxwriter: None
lxml: None
bs4: None
html5lib: None
sqlalchemy: None
pymysql: None
psycopg2: None
jinja2: 2.10
s3fs: None
fastparquet: None
pandas_gbq: None
pandas_datareader: None