API: Datetime-like indexes `summary` should output the same format

Related to #6469. Made all datetime-like indexes `summary` should output the same format.

#### Before
```
didx = pd.date_range('2014-12-20', freq='M', periods=3)
pidx = pd.period_range('2014-12-20', freq='M', periods=3)
tdidx = pd.timedelta_range(start='1 days', freq='D', periods=3)

didx.summary()
# DatetimeIndex: 3 entries, 2014-12-31 00:00:00 to 2015-02-28 00:00:00
# Freq: M

pidx.summary()
# PeriodIndex: 3 entries, 2014-12 to 2015-02

tdidx.summary()
# TimedeltaIndex: 3 entries, '1 days' to '3 days'
# Freq: <Day>
```

#### After

- `DatetimeIndex` and `PeriodIndex` use `_format_func`. This made `DatetimeIndex` not to output hour/minutes.. when its frequency is more than a day.
- `PeriodIndex` outputs its `freq`
- `TimedeltaIndex` has no changes.

```
# DatetimeIndex: 3 entries, 2014-12-31 to 2015-02-28
# Freq: M

# PeriodIndex: 3 entries, 2014-12 to 2015-02
# Freq: M

# TimedeltaIndex: 3 entries, '1 days' to '3 days'
# Freq: <Day>
```
Can you now you are modifying it also add a docstring?