[SLP][Modularisation][NFC] Extract commutativity and ordering helpers into SLPUtils 2/3 (#209080)

Please refer to RFC:
https://discourse.llvm.org/t/modularizing-slpvectorizer-cpp/90922

Move into SLPVectorizer/SLPUtils.{h,cpp} (namespace
llvm::slpvectorizer):
  - UsesLimit (constant)
  - isCommutative(Instruction *, Value *, bool)
  - isCommutative(Instruction *) (overload)
  - isCommutableOperand
  - getNumberOfPotentiallyCommutativeOps
  - getElementIndex
  - inversePermutation
  - reorderScalars
  - shortBundleName (debug-only, #if !defined(NDEBUG))
  - areAllOperandsNonInsts
  - isUsedOutsideBlock
  - doesNotNeedToBeScheduled
  - doesNotNeedToSchedule

(Please note that the move is intended to be verbatim. I welcome
comments about latents issues/comment changes and any other simple
things but will take them in a separate patch.)

Assisted by Cursor.

GitOrigin-RevId: 6705f3d3d2e6e9a151505375ab567ec82c54a637
3 files changed