Support a few "shifted register" operations on Arm64 (#75823)
* Refactor Lowering::IsContainableBinaryOp so node checks are simpler
* Update Lowering::ContainCheckBinary to check both operands for a commutative oper
* Updating Lowering::IsContainableBinaryOp to support some shifted register instructions
* Resolving some build failures/asserts
* Ensure IsContainableBinaryOp checks IsSafeToContainMem
* Use parentNode not node
* Ensure shifted register instructions that set flags use the right instruction
* Ensure the shift amount is checked for smaller nodes
* Apply suggestions from code review
* Apply suggestions from code review
Co-authored-by: SingleAccretion <62474226+SingleAccretion@users.noreply.github.com>
Co-authored-by: SingleAccretion <62474226+SingleAccretion@users.noreply.github.com>