allow compiler vectorization of integer compares

write integer bool loops in a compiler vectorizable way and make use of it for tri boolean outer product on integer ranges which are usually in the int16 range

```
In [2]: %timeit np.tri(100)
10000 loops, best of 3: 32.1 µs per loop
In [3]: %timeit np.tri(1000)
100 loops, best of 3: 2.86 ms per loop
```
vs before
```
In [2]: %timeit np.tri(100)
10000 loops, best of 3: 46.4 µs per loop
In [3]: %timeit np.tri(1000)
100 loops, best of 3: 4.47 ms per loop
```

I'm not sure if this is really worth the extra code
default integers on 64 bit are 8 byte and not vectorizable with sse2, so the applications are relatively limited