add texture instructions

Originally, I had planned to use intrinsics for these. However, it seems
like the complexity of dealing with all the various different texture
builtins there are and figuring out which opcode to use is greater than
the complexity of having another instruction type. Grrrr, textures.
add a helper to iterate over all dests and sources

We were duplicating this already for adding and removing defs/uses, and
lots of other optimization passes will need this as well.
modify the format of intrinsics

AFAICT, no load/store operation in GLSL ever writes to more than one
register, so only support 0 or 1 destinations. On the other hand, we
want more than one constant index for things like UBO loads, which will
take the buffer index and the number of vectors to load/store (similar
to the constant load instruction). While we're at it, clean things up to
make intrinsics look more like ALU instructions.