i965/gen6+: Remove varying map dependency on userclip_active.

Previously, on Gen6+, we laid out the vertex (or geometry) shader
varying map differently depending whether user clipping was active.
If it was active, we put the clip distances at varying indices 2 and 3
(where the clipper expects them); if it was inactive, we assigned them
in the order of the gl_varying_slot enum.

This made for unnecessary recompiles, since turning clipping on/off
for a shader that used gl_ClipDistance might rearrange the varyings.
It also required extra bookkeeping, since it required the user
clipping flag to be provided to brw_compute_vec4_varying_map() as a
parameter.

With this patch, we always put clip distances at varying indices 2 and
3 if they are written to.  do_vs_prog() (and by extension
do_gs_prog()) is responsible for ensuring that clip distances are
written to when user clipping is enabled (as it previously did for
gen4-5).

This makes the only input to brw_compute_vec4_varying_map() a bitfield
of which varyings the shader writes to, a fact that we'll take
advantage of in forthcoming patches.
i965/gs: Stop storing an input varying map in the GS program key.

Now that the vertex shader output varying map is determined solely by
a 64-bit bitfield, we don't have to store the vertex shader output
varying map (which is the geometry shader input varying map) in the
geometry shader program key; instead, we can just store the bitfield,
and let the geometry shader infer the varying map at compile time.

This dramatically reduces the size of the geometry shader program key,
which we want to keep small since it gets recomputed whenever the
active program changes.