This adds some patterns to transform uadd.with.overflow to uadd.sat (with usub.with.overflow to usub.sat too). The patterns selects from UINTMAX (or 0 for subs) depending on whether the operation overflowed.
Signed patterns are a little more involved (they can wrap in two directions), but can be added here in a followup patch too.
We might want to add an m_ExtractValue<0>(Matcher) matcher...