[NFC] Refactor LoopInterchange into a loop-nest pass

This is the preliminary patch of converting `LoopInterchange` pass to a loop-nest pass and has no intended functional change.
Changes that are not loop-nest related are split to D96650.

Reviewed By: Whitney

Differential Revision: https://reviews.llvm.org/D96644

GitOrigin-RevId: 0eeaec2a6d5f5758c2bbb0f47c06f769f7ae2813
4 files changed