ENH: implement DatetimeLikeArray
The medium-term goal: refactor out of `DatetimeIndexOpsMixin`/`DatetimeIndex`/`TimedeltaIndex`/`PeriodIndex` the bare minimum subset of functionality to implement arithmetic+comparisons for `DatetimeArray`/`TimedeltaArray`/`PeriodArray`.  This PR does _not_ do that.

What it _does_ do is refactor out the subset of those methods that can be transplanted directly into the Array classes (i.e. cut/paste).

On its own this PR is not very useful, so think of it as a Proof of Concept/discussion piece.

cc @TomAugspurger since this is a precursor to getting a "real" PeriodArray.