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.
All these tests contained inside the block:
```
       } else if (no_overflow(delta.type())) {
```
So they only get executed for types without well-defined overflow (i.e. Int(32) and Float(32)). Doesn't that address Dillon's concern about overflow?

Now that I think of it, I am actually wondering if that needs to be the case for the `if (min_a)`, `if (max_a)`, etc... tests. Can I pull these tests out of the `no_overflow` block?