BUG: DatetimeIndex.__iter__ creates a temp array of Timestamp (GH7683)

Move ``__iter__`` from ``DatatimeIndex/PeriodIndex`` to ``DatetimeIndexOpsMixin``
Adding perf tests for change