!UPSTREAM: mesa/cs: Add a MESA_SHADER_COMPUTE stage and update switch statements.

This patch adds MESA_SHADER_COMPUTE to the gl_shader_stage enum.  To
avoid creating compiler warnings, it also adds a MESA_SHADER_COMPUTE
case to all switch statements that switch on a value of type
gl_shader_stage and don't contain a default case.

TODO:
- Is _mesa_program_index_to_target() redundant with something else?
- Split other stuff to its own patch.
i965/cs: Allow ARB_compute_shader to be enabled via env var.

This will allow testing of compute shader functionality before it is
completed.
glsl/cs: Handle compute shader local_size_{x,y,z} declaration.
!UPSTREAM: Random updates

TODO:
- Organize and comment.
WIP: glsl/cs: implement generate_cs_special_vars()
mesa/cs: Create the gl_compute_program struct, and the code to initialize it.
i965/cs: Create the brw_compute_program struct, and the code to initialize it.
mesa/cs: Implement MAX_COMPUTE_WORK_GROUP_COUNT constant.
glsl/cs: Prohibit user-defined ins/outs in compute shaders.
glsl/cs: Prohibit mixing of compute and non-compute shaders.

Fixes piglit test:
spec/ARB_compute_shader/linker/mix_compute_and_non_compute
mesa/cs: Handle compute shader local size during linking.
main/cs: Implement query for COMPUTE_WORK_GROUP_SIZE.