glsl: add support for texture functions with offset arrays

This is needed for textureGatherOffsets()

Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
glsl: add signatures for textureGatherOffsets()

Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
i965: Add asserts to ensure that ir_tg4 offset arrays are lowered

We don't have a message that does 4 independent offsets; a lowering
pass needs to lower it to 4 normal gather4s before reaching this
point.

Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
i965: Add lowering pass for splitting textureGatherOffsets

Rewrites textureGatherOffsets(s, p, offsets) into

   gvec4(
      textureGatherOffset(s, p, offsets[0]).w,
      textureGatherOffset(s, p, offsets[1]).w,
      textureGatherOffset(s, p, offsets[2]).w,
      textureGatherOffset(s, p, offsets[3]).w
      )

Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>