nir: Add an I/O vectorization pass
This new pass actually doesn't share any code with @tarceri's version. I tried to at least keep the variable creation portion but it turned out to be rather broken once I got into the details so I had to rewrite it.