ENH: Arithmetic with Timestamp-based intervals
#### Is your feature request related to a problem?

It is currently possible to perform arithmetic on an `Interval` iff it is an `Interval` of numbers.  For `Interval` `iv`, `iv - c == Interval(iv.left-c, iv.right-c)`.  This does not work for intervals of `Timestamp`s:

```
In [90]: iv = pd.Interval(3, 4)

In [91]: pd.Interval(iv.left-2, iv.right-2)
Out[91]: Interval(1, 2, closed='right')

In [92]: iv - 2
Out[92]: Interval(1, 2, closed='right')

In [93]: iv = pd.Interval(pd.Timestamp("1900-01-01"), pd.Timestamp("1900-01-02"))

In [94]: pd.Interval(iv.left - pd.Timestamp("1900-01-01"), iv.right - pd.Timestamp("1900-01-0
    ...: 1"))
Out[94]: Interval(Timedelta('0 days 00:00:00'), Timedelta('1 days 00:00:00'), closed='right')

In [95]: iv - pd.Timestamp("1900-01-01")
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-95-b61ec78c0d66> in <module>
----> 1 iv - pd.Timestamp("1900-01-01")

TypeError: unsupported operand type(s) for -: 'pandas._libs.interval.Interval' and 'Timestamp'
```

#### Describe the solution you'd like

I would like that the behaviour that `iv - b == Interval(iv.left-b, iv.right-b)` holds for all types that `Interval` can hold, including `Timestamp`s and `Timedelta`s.

#### API breaking implications

No backward compatibility issues expected.

#### Describe alternatives you've considered

Users can currently resort to `Interval(iv.left-b, iv.right-b)`.  This is more typing and required repeating the expression `b`.