glsl/linker: Refactor in preparation for adding more shader stages.

Rather than maintain separately named arrays and counts for vertex,
geometry, and fragment shaders, just maintain these as arrays indexed
by the gl_shader_type enum.
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.
mesa: Replace Current{Vertex,Geometry,Fragment}Program with array.

This should make it easier to add additional shader types
(e.g. compute shaders).
WIP: update switch statements etc