cleanup order of operations kludges
DatetimeIndexOpsMixin has an unfortunate kludge where it checks if `self` is a `TimedeltaIndex` and if so dispatches to a reversed operation.  This then makes subsequent checks less straightforward than they could/should be.  This fixes that.

This is in preparation for separating out DatetimeArray/TimedeltaArray/PeriodArray, so this uses formatting on error messages to be class-agnostic.
