shader_runner: add ability to specify GL_TEXTURE_BASE_LEVEL

Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
shader_runner: add ability to control red swizzle texparameter

Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
ARB_texture_gather: add initial execution test

This test exercises combinations of:
- Shader stage vs/fs
- Offsetting
- Component count, up to implementation-defined limit
- Swizzling
- Unsigned normalized, float, int, unsigned int component types
- 2D/2DArray/Cube/CubeArray samplers

The test works by numbering the texels, and ensuring that the four
texels sampled by textureGather*() are those we expect.

Not exercised yet:
- Other interesting internalformats [DEPTH_COMPONENT, etc]
- Addressing modes other than WRAP.
- Use in Geometry Shader. I'd like to pick this up later, as mesa's
  GS support matures.

V2: - Use textureSize rather than hardcoding size in shader;
    - Use piglit_build_simple_program
    - Whitespace tidyups
    - Convert swizzle to enum
    - More component types, for all gsampler2D variants.

V3: - More whitespace
V4: - allow explicit 'unorm' component type; rework usage
    - Support all required sampler types.
    - Refactor setup

Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
ARB_texture_gather: add new test for miplevel behavior

textureGather always samples the base level, regardless of what
filtering modes are set.

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