datetime64 instead of timedelta64 when subtracting datetimes values on groupby.transform()
#### Code Sample, a copy-pastable example if possible

```python
import pandas as pd

df = pd.DataFrame([pd.date_range('1/1/2011', periods=5, freq='H')])
data = [('a', pd.Timestamp('2012-05-01')),
            ('a', pd.Timestamp('2012-05-02')),
            ('b', pd.Timestamp('2012-05-03'))]
df = pd.DataFrame(data, columns=['A','ts'])

print(df.ts.diff(1))
print(df.groupby('A')['ts'].transform(lambda x: x.diff(1)) )
```
#### Problem description

I may have found a semantic inconsistency while manipulating datetime values on Pandas.

Imagine you have a column ('ts' on my example) of type datetime64[ns]. The command df.ts.diff(1) returns timedelta values, which is fine. But the command df.groupby('A')['ts'].transform(lambda x: x.diff(1)) creates a column of type datetime64[ns] instead of type timedelta64[ns].

Since the pandas.Series.diff() on a series of datetime64[ns] returns timedelta64[ns], it is surprising (and feels buggy) that the second command behaves differently.

#### Expected Output

I would expect that both commands return  timedelta64[ns]

#### Output of ``pd.show_versions()``

<details>
INSTALLED VERSIONS
------------------
commit: None
python: 3.5.4.final.0
python-bits: 64
OS: Linux
OS-release: 4.12.0-1-amd64
machine: x86_64
processor: 
byteorder: little
LC_ALL: None
LANG: pt_BR.UTF-8
LOCALE: pt_BR.UTF-8

pandas: 0.19.2
nose: 1.3.7
pip: 9.0.1
setuptools: 36.2.7
Cython: None
numpy: 1.13.1
scipy: 0.18.1
statsmodels: None
xarray: None
IPython: 5.1.0
sphinx: None
patsy: 0.4.1+dev
dateutil: 2.6.1
pytz: 2017.2
blosc: None
bottleneck: None
tables: 3.3.0
numexpr: 2.6.2
matplotlib: 2.0.0
openpyxl: None
xlrd: None
xlwt: None
xlsxwriter: None
lxml: None
bs4: 4.6.0
html5lib: 0.999999999
httplib2: 0.9.2
apiclient: None
sqlalchemy: None
pymysql: None
psycopg2: 2.7.3 (dt dec pq3 ext lo64)
jinja2: 2.9.6
boto: None
pandas_datareader: None

</details>
