first/last converts datetime into float
#### Code Sample, a copy-pastable example if possible

```
import pandas as pd
df = pd.DataFrame({'a': [1, 1, 2, 2], 'b': pd.to_datetime(['a', 'a', '12-23-2015', '12-24-2015'],
                  errors='coerce')})
df.groupby('a').b.first().dtype 
```
#### Expected Output

last line is supposed to show datetime64[ns] but it actually is float64
this only happens when the entire group has NaT datetime
#### output of `pd.show_versions()`
## INSTALLED VERSIONS

commit: None
python: 3.5.1.final.0
python-bits: 64
OS: Windows
OS-release: 10
machine: AMD64
processor: Intel64 Family 6 Model 94 Stepping 3, GenuineIntel
byteorder: little
LC_ALL: None
LANG: None

pandas: 0.18.1
nose: 1.3.7
pip: 8.1.2
setuptools: 25.0.0
Cython: 0.24.1
numpy: 1.11.0
scipy: 0.17.0
statsmodels: 0.6.1
xarray: None
IPython: 5.0.0
sphinx: None
patsy: 0.4.1
dateutil: 2.5.3
pytz: 2016.4
blosc: None
bottleneck: None
tables: 3.2.3
numexpr: 2.5.2
matplotlib: 1.5.1
openpyxl: 2.3.5
xlrd: None
xlwt: None
xlsxwriter: None
lxml: None
bs4: None
html5lib: None
httplib2: 0.9.2
apiclient: 1.5.0
sqlalchemy: 1.0.14
pymysql: None
psycopg2: 2.6.2 (dt dec pq3 ext lo64)
jinja2: 2.8
boto: None
pandas_datareader: None
