TimedeltaIndex should have a method to help to convert to string (with a custom format with microsecond resolution)
Hello,

I noticed in doc https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.dt.strftime.html that `DatetimeIndex` have a `dt` attribute which can help to convert a `Timestamp` to string.

```python
>>> rng = pd.date_range(pd.Timestamp("2018-03-10 09:00"),
...                     periods=3, freq='s')
>>> rng.strftime('%B %d, %Y, %r')
Index(['March 10, 2018, 09:00:00 AM', 'March 10, 2018, 09:00:01 AM',
       'March 10, 2018, 09:00:02 AM'],
      dtype='object')
```

(or `rng.to_series().dt.strftime('%B %d, %Y, %r')`)

A similar method should exist for `TimedeltaIndex` to help to convert it to string (it's especially useful to output an Excel files without "0 days" for each index when each timedelta is below 1 day)

```python
>>> rng = pd.timedelta_range(start="0h", freq="15min", periods=3)
TimedeltaIndex(['00:00:00', '00:15:00', '00:30:00'], dtype='timedelta64[ns]', freq='15T')
>>> rng.dt.strftime("%M:%S")
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-48-1f408f75ecf6> in <module>
----> 1 rng.dt.strftime("%m:%s")

AttributeError: 'TimedeltaIndex' object has no attribute 'dt'

```

I have found a bad method to do this:

```python
rng.map(lambda td: time.strftime("%M:%S", time.gmtime((td.to_pytimedelta().total_seconds()))))
```

unfortunatelly it doesn't support the "f" specifier for microsecond (I only need in fact millisecond)

```python
>>> rng = pd.to_timedelta(["00:01:02.345", "00:02:03.456"])
TimedeltaIndex(['00:01:02.345000', '00:02:03.456000'], dtype='timedelta64[ns]', freq=None)
>>> rng.map(lambda td: time.strftime("%M:%S.%f", time.gmtime((td.to_pytimedelta().total_seconds()))))
Index(['01:02.f', '02:03.f'], dtype='object')
```

it could be nice to simply be able to do

```python
rng.to_series().dt.strftime("%M:%S.%f")
```

or naming attribute `td` (instead of `dt`) to avoid confusion between `DatetimeIndex` and `TimedeltaIndex`

```python
rng.to_series().td.strftime("%M:%S.%f")
```

or even simplier

```python
rng.strftime("%M:%S.%f")
```

I think a workaround to achieve this is (with positive `Timedelta`) to add epoch and so manage `Timestamp` instead.

```python
>>> rng = pd.to_timedelta(["00:01:02.345", "00:02:03.456"])
TimedeltaIndex(['00:01:02.345000', '00:02:03.456000'], dtype='timedelta64[ns]', freq=None)
>>> rng = rng + pd.to_datetime(0)
DatetimeIndex(['1970-01-01 00:01:02.345000', '1970-01-01 00:02:03.456000'], dtype='datetime64[ns]', freq=None)
rng = rng.strftime("%H:%M.%f")
Index(['00:01.345000', '00:02.456000'], dtype='object')
>>> rng.str[:-3]
Index(['00:01.345', '00:02.456'], dtype='object')
```

But I'm still wondering how to manage negative `Timedelta` such as

```python
>>> rng = pd.to_timedelta(["00:01:02.345", "-00:02:03.456"])
TimedeltaIndex(['00:01:02.345000', '-1 days +23:57:56.544000'], dtype='timedelta64[ns]', freq=None)
```

Any idea?

Kind regards


PS : related issue https://github.com/pandas-dev/pandas/issues/17232 (about display of negative Timedelta)