Different behaviour of set_index with single and multiple columns involving datetime
#### Code Sample, a copy-pastable example if possible

```python
import datetime
import pandas as pd
df = pd.DataFrame({'date':[datetime.date(2011,1,3),datetime.date(2011,1,4)], 'val':[100,200], 'val1':[9,99] })
df1 = df.set_index('date')
df2 = df.set_index(['date', 'val'])

```
#### Problem description
When setting index with only 'date' column, we get an index with no timestamps.( type is : datetime.date object)
When setting index with 'date' and some other column (multindex), 00:00:00 is introduced (type is : pd.Timestamp)

#### Output
```python
df1.index
Out[71]: Index([2011-01-03, 2011-01-04], dtype='object', name='date')

df2.index
Out[72]: 
MultiIndex(levels=[[2011-01-03 00:00:00, 2011-01-04 00:00:00], [100, 200]],
           labels=[[0, 1], [0, 1]],
           names=['date', 'val'])
```

Why does set_index modify the original format in second case ? .... I know one can manually change the type of index but it is a complicated process since multiindexes are involved
#### Output of ``pd.show_versions()``
pd version : 0.23.4
