i965: Reduce code duplication in handling of depth, stencil, and HiZ.

This patch consolidates duplicate code in the brw_depthbuffer and
gen7_depthbuffer state atoms.  Previously, these state atoms contained
5 chunks of code for emitting the _3DSTATE_DEPTH_BUFFER packet (3 for
Gen4-6 and 2 for Gen7).  Also a lot of logic for determining the
appropriate buffer setup was duplicated between the Gen4-6 and Gen7
functions.

This refactor splits the code into three separate functions:
brw_emit_depthbuffer(), which determines the appropriate buffer setup
in a mostly generation-independent way, brw_emit_depth_stencil_hiz(),
which emits the appropriate state packets for Gen4-6, and
gen7_emit_depth_stencil_hiz(), which emits the appropriate state
packets for Gen7.

Tested using Piglit on Gen5-7 (no regressions).

v2: Re-word some comments.  Fix an assertion that incorrectly
prohibited packed depth/stencil formats on Gen6 (these are allowed
provided that HiZ is disabled).
!UPSTREAM: Hacky fix for Gen5 depthstencil-render-miplevels stencil-only test.  TODO: think through, test thoroughly, and document.
De-virtualize brw_blorp_params class
i965/blorp: Convert brw_blorp_mip_info into a C struct
i965/blorp: Convert brw_blorp_surface_info into a C struct
i965/blorp: Convert brw_blorp_coord_transform_params into a C struct
i965/blorp: Convert brw_blorp_wm_push_constants into a C struct
i965/blorp: Convert more stuff to C
Convert more stuff to C
Convert brw_blorp_params into C
Convert more stuff to C
Convert brw_hiz_op_params to C
Convert brw_blorp_blit_params to C
Convert the rest of brw_blorp.h to C
!UPSTREAM: i965/blorp: Merge into brw_wm_prog.

TODO: disentangle prep work.
i965/blorp: Use gen7_push_constant_alloc
Convert to C: clean up init
Convert to C: clean up init
Convert to C: clean up init
i965/blorp: Use the same binding table assignments as normal rendering.

This should make it easier to merge blorp code with the state atoms
for normal rendering.