i915g: Fix copy region code

This fixes a few issues with it, also cleans up the code.
i915g: Support R4G4B4A4 render targets and textures
i915g: Support B5G5R5A1 render targets and textures
tgsi/ureg: add ureg_UARL shortcut
mesa,gallium: API settings / rasterization rules
gallium-drivers: use API settings / rasterization rules
r600g: handle PIPE_QUERY_GPU_FINISHED
r600g: check for PIPE_BIND_BLENDABLE in is_format_supported

v2: added !util_format_is_depth_or_stencil(format)
r600g: support all channels of TGSI_FILE_ADDRESS

It's allowed in SM3.

v2: fix multi-component tgsi_r600_arl (FLT_TO_INT is trans-only)
r600g: implement TGSI_OPCODE_BREAKC
r600g: HW bug workaround for TGSI_OPCODE_BREAKC
r600g: remove assert on draw with count == 0
gallium: create TGSI_PROPERTY to disable viewport and clipping
r600g: use TGSI_PROPERTY to disable viewport and clipping

Signed-off-by: David Heidelberger <david.heidelberger@ixit.cz>
nv50,nvc0: handle TGSI_PROPERTY_VS_WINDOW_SPACE_POSITION
nv50,nvc0: handle NULL vertex elements without fallback
nv50/ir/tgsi: implement TGSI_OPCODE_NRM,DP2A

Used by d3d9 st.
nv50: don't emit buffer for skipped vertex elements

Grr, should forbid that and insert dummy elements in nine.
nvc0: avoid fault in get_query_result if there was no begin_query
gallium: add PIPE_CAP_DEVICE_MEMORY_SIZE