Add generic vectorIx

This allows one to be abstract over vector types more readily than is possible with `Ix`. I found this useful although it's unclear whether it is generally useful enough to warrant inclusion.