Unexpected behavior of groupby on dt.date 
#### Trying to groupby with only dt.date vs dt.date with some other column

```python
In [1]: import pandas as pd

In [2]: import numpy as np

In [3]: import datetime

In [4]: di={}

In [5]: di['datetime']=pd.date_range(datetime.datetime(2018,11,3,23,30,0), datetime.datetime(2018,11,4,0,15,0), freq="5min")

In [6]: di['id']=[0,1,0,1,0,1,0,1,0,1]

In [7]: di['close']= np.random.rand(len(di['datetime']))*100

In [8]: df=pd.DataFrame(di)

In [9]: df
Out[9]: 
       close            datetime  id
0  14.886639 2018-11-03 23:30:00   0
1  88.452568 2018-11-03 23:35:00   1
2  35.189082 2018-11-03 23:40:00   0
3  87.502510 2018-11-03 23:45:00   1
4  23.648492 2018-11-03 23:50:00   0
5  72.164028 2018-11-03 23:55:00   1
6   1.915873 2018-11-04 00:00:00   0
7  59.179552 2018-11-04 00:05:00   1
8  83.088681 2018-11-04 00:10:00   0
9  91.193745 2018-11-04 00:15:00   1

In [10]: for k,v in df.groupby(df.datetime.dt.date).groups.items():
   ....:     print(k)
   ....:     
2018-11-04
2018-11-03

In [11]: for k,v in df.groupby([df.datetime.dt.date,'id']).groups.items():
   ....:     print(k)
   ....:     
(Timestamp('2018-11-03 00:00:00'), 0)
(Timestamp('2018-11-03 00:00:00'), 1)
(Timestamp('2018-11-04 00:00:00'), 1)
(Timestamp('2018-11-04 00:00:00'), 0)

In [12]: 
```
#### Problem description

As one can see, the first method produces a Python datetime.datetime object while the second one produces a Pandas Timestamp object. Is this an issue or am I missing something ? 

Printing the type of df.datetime.dt.date:
```python
for k,v in df.groupby(df.datetime.dt.date).groups.items():
    print(type(k))

<class 'datetime.date'>
<class 'datetime.date'>

for k,v in df.groupby([df.datetime.dt.date,'id']).groups.items():
    print(type(k[0]))

<class 'pandas._libs.tslibs.timestamps.Timestamp'>
<class 'pandas._libs.tslibs.timestamps.Timestamp'>
<class 'pandas._libs.tslibs.timestamps.Timestamp'>
<class 'pandas._libs.tslibs.timestamps.Timestamp'>
```