REF: DatetimeIndex.get_loc
xref #30874 which does similar cleanup for TimedeltaIndex, #31021 for PeriodIndex

Do all parsing/casting/conversion before call to self._engine or super() methods  (xref #30948)

Needs test for preventing integers and Timedeltas through incorrectly.

Some of the casting may be simplified pending #30994.