Simplify inequality comparisons against ramps and min/max expressions.

This PR contains some work done inside simplify for the specialize_branched_loops branch. I am splitting this off of the main PR for specialize_branched_loops so that it is easier to review.

There are 2 basic changes here. First, I added simplify rules for handling LT nodes with vector args. More recently, I added some simplify rules for handling LT nodes with min/max args. These simplify rules are very important for the specialize_branched_loops work.
Yes it does, sorry I missed that no_overflow check. Especially stupid since I wrote that bit... sorry.

Yes, I think you can move your min/max tests out, though we may want to make sure we actually want to do that. It's a bit of an overload of the meaning of "no_overflow", but we do more aggressive simplification for Int(32) because it is more important to simplify index expressions. But, this is expensive in terms of compile time, and your rules do recursively call mutate (which tends to be the source of expensive simplification).