mesa: Replace ctx->Shader.Current{Vertex,Fragment,Geometry}Program with an array.

These are replaced with
ctx->Shader.CurrentProgram[MESA_SHADER_{VERTEX,FRAGMENT,GEOMETRY}].
In patches to follow, this will allow us to replace a lot of ad-hoc
logic with a variable index into the array.

With the exception of the changes to mtypes.h, this patch was
generated entirely by the command:

    find src -type f '(' -iname '*.c' -o -iname '*.cpp' ')' \
    -print0 | xargs -0 sed -i \
    -e 's/\.CurrentVertexProgram/.CurrentProgram[MESA_SHADER_VERTEX]/g' \
    -e 's/\.CurrentGeometryProgram/.CurrentProgram[MESA_SHADER_GEOMETRY]/g' \
    -e 's/\.CurrentFragmentProgram/.CurrentProgram[MESA_SHADER_FRAGMENT]/g'
mesa: Fold long lines introduced by the previous patch.
i965: Fix comments to refer to the new ctx->Shader.CurrentProgram array.
meta: Replace save_state::{Vertex,Geometry,Fragment}Shader with an array.

Since ctx->Shader.Current{Vertex,Geometry,Fragment}Program is an
array, this allows some meta code to be rolled up into loops.
mesa: Remove ad-hoc arrays of gl_shader_program.

Now that we have a ctx->Shader.CurrentProgram array, we can just use
it directly.
mesa: Change redundant code into loops in shaderapi.c.

This is possible now that ctx->Shader.CurrentProgram is an array.
mesa: Change redundant code into loops in texstate.c

This is possible now that ctx->Shader.CurrentProgram is an array.
mesa: Add extension enable flags for ARB_compute_shader.
mesa: Implement MAX_COMPUTE_WORK_GROUP_SIZE constant.
mesa: Add dispatch API stubs for ARB_compute_shader.
mesa: Implement MAX_COMPUTE_WORK_GROUP_INVOCATIONS constant.
WIP: glsl: Add parser support for compute shader layout qualifiers.
mesa: Add a MESA_SHADER_COMPUTE stage.
i965: Allow ARB_compute_shader to be enabled via env var.

This will allow testing of compute shader functionality before it is
completed.
glsl: Handle compute shader local_size_{x,y,z} declaration.
WIP: update switch statements etc
WIP: implement generate_cs_special_vars()
mesa: Create the gl_compute_program struct, and the code to initialize it.
Fix another switch statement.
i965: Create the brw_compute_program struct, and the code to initialize it.