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