ff_fragment_shader: Don't do unnecessary (and dangerous) uniform setup.

Previously, right after calling _mesa_glsl_link_shader(), the fixed
function fragment shader code made several calls with the ostensible
purpose of setting up uniforms for the fragment shader it just
created.

These calls are unnecessary, since _mesa_glsl_link_shader() calls
driver->LinkShader(), which takes care of calling these functions (or
their equivalent).  Also, they are dangerous to call after
_mesa_glsl_link_shader() has returned, because on back-ends such as
i965 which do precompilation, _mesa_glsl_link_shader() may have
already cached pointers to the existing uniform structures; attempting
to set up the uniforms again invalidates those cached pointers.

It was only by sheer coincidence that this wasn't manifesting itself
as a bug.  It turns out that i965's precompile mechanism was always
setting bit 0 of brw_wm_prog_key::proj_attrib_mask to 0 for fixed
function fragment shaders, but during normal usage this bit usually
gets set to 1.  As a result, the precompiled shader (with its invalid
uniform pointers) was not being used.

I'm about to introduce some changes that cause bit 0 of
proj_attrib_mask to be set consistently between precompilation and
normal useag, so to avoid regressions I need to get rid of the
dangerous duplicate uniform setup code first.
i965/fs: Avoid unnecessary recompiles due to bit 0 of proj_attrib_mask.

Previous to this patch, when using fixed function fragment shading,
bit 0 of brw_wm_prog_key::proj_attrib_mask was being set differently
during precompiles and normal usage.  During precompiles it was being
set only if the fragment shader reads from window position (which it
never does), so it was always being set to 0.  During normal usage it
was being set if the vertex shader writes to all 4 components of
gl_Position (which it usually does), so it was usually being set to 1.
As a result, we were almost always doing an extra recompile for the
fixed function fragment shader.

The recompile was totally unnecessary, though, because
brw_wm_prog_key::proj_attrib_mask is only consulted for
fs_visitor::emit_general_interpolation(), which isn't used for
fragment shader attribute 0 (window position).

This patch avoids the unnecessary recompile by always setting bit 0 of
brw_wm_prog_key::proj_attrib_mask to 1.
i965/pre-Gen6: Don't rely on VERT_RESULT_HPOS <-> FRAG_ATTRIB_WPOS.

At present, the _mesa_vert_result_to_frag_attrib() and
_mesa_frag_attrib_to_vert_result() functions establish a
correspondence between VERT_RESULT_HPOS and FRAG_ATTRIB_WPOS.  This is
bogus, since the former is gl_Position and the later is gl_FragCoord,
which aren't in any way the same thing.

Only one piece of code relied on this clumsy correspondence--the
determination of which fragment inputs are present when computing the
urb_setup for pre-Gen6 fragment shaders.  This patch modifies the
urb_setup computation so that it always assumes FRAG_ATTRIB_WPOS is
present (because it always is).
mtypes.h: Stop mapping VERT_RESULT_HPOS <-> FRAG_ATTRIB_WPOS.

Previously, the _mesa_vert_result_to_frag_attrib() and
_mesa_frag_attrib_to_vert_result() functions established a
correspondence between VERT_RESULT_HPOS and FRAG_ATTRIB_WPOS.  This
was bogus, since the former is gl_Position and the latter is
gl_FragCoord, which aren't in any way the same thing.

No code relies on this bogus correspondence anymore, so remove it.
mtypes.h: Add new gl_varying_slot enum, and bitfield defines.

Future patches will make use of the enum.  It will eventually take the
place of the existing enums gl_vert_result, gl_geom_attrib,
gl_geom_result, and gl_frag_attrib, all of which represent essentially
the same information but using inconsistent values.
WIP: Remap VERT_RESULT to new enum