clover: clGetProgramInfo support for OpenCL 1.2.

[ Francisco Jerez: Rework using fold() for conciseness. ]

Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Tested-by: EdB <edb+mesa@sigluy.net>
clover/util: Implement minimalist reference to clover::ref_counter object.

Tested-by: EdB <edb+mesa@sigluy.net>
clover/util: Pass initial count value to ref_counter constructor.

And mark the ref_count() method as const.

Tested-by: EdB <edb+mesa@sigluy.net>
clover: Refuse to build a program if there are kernel objects attached to it.

Fixes piglit cl-api-build-program.

Tested-by: EdB <edb+mesa@sigluy.net>
tgsi/ureg: add ureg_UARL shortcut
mesa,gallium: API settings / rasterization rules
gallium/radeon/softpipe/llvmpipe/svga/i915/ilo/freedreno/nv30: use API settings / rasterization rules

v2: compilation fixes by David Heidelberger <david.heidelberger@ixit.cz>
v3: compilation fix by Thermionix <bond711@gmail.com>
gallium/nvc0: improve readability

Signed-off-by: David Heidelberger <david.heidelberger@ixit.cz>
gallium/nv50/nvc0: use API settings / rasterization rules

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.
hack/nv50: don't emit buffer for skipped vertex elements

Grr, should forbid that and insert dummy elements in nine.
hack/nvc0: avoid fault in get_query_result if there was no begin_query
winsys/sw/wrapper: hook up is_displaytarget_format_supported

Looks like no one's using this thing.
gallium/draw: support hack to disable clipping
nv50: support for hackish viewport bypass
nv50,nvc0: d3d9 requires transfer stride to be aligned to 4
gallium: add blending to pipe blit
nvc0: use blending to pipe blit