Add support for saturating add/sub in InstructionSimplify. In particular, the following simplifications are supported:
- sat(X + 0) -> X
- sat(X + undef) -> -1
- sat(X uadd MAX) -> MAX
- (and commutative variants)
- sat(X - 0) -> X
- sat(X - X) -> 0
- sat(X - undef) -> 0
- sat(undef - X) -> 0
- sat(0 usub X) -> 0
- sat(X usub MAX) -> 0