(Series|DataFrame) datetimelike ops
There are a bunch of GH issues relating to arithmetic ops with datetimelike objects behaving unexpectedly when boxed in a `(Series|DataFrame)`.  For the issues I have in mind (I'll collect a list later), the operation works as expected when done on a `(DatetimeIndex|TimedeltaIndex|PeriodIndex)`.

The relevant `(Series|DataFrame)` operations are defined in core.ops.  The `DatetimeIndex` (et al) ops are defined in `core.indexes.datetimelike.DatetimeIndexOpsMixin`.  With a little gumption the relevant ops can be taken out of `DatetimeIndexOpsMixin` and made into `(Index|Series|DataFrame)`-agnostic classes `TimestampVector`, `TimedeltaVector`, `PeriodVector`.

Would it be feasible/desirable to have appropriately-dtyped `(Series|DataFrame)` methods dispatch to these implementations?