i965/fs: Avoid unnecessary recompiles due to POS bit of proj_attrib_mask.

Previous to this patch, when using fixed function fragment shading,
bit VARYING_BIT_WPOS 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
VARYING_SLOT_POS.

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

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).
!UPSTREAM: Hacky fix for Gen5 depthstencil-render-miplevels stencil-only test.  TODO: think through, test thoroughly, and document.