driver: keep constants when switching shader

Re-fetch user constant buffer into shader object after re-linking.
Fixes viewport wobble issue in d2x.
driver: Implement KILL and KILL_IF TGSI instructions.
minigallium: rebase to a1b6e69
etnaviv: fix floating point -> fixed conversion for negative values
driver: implement auto disable

These counters disable TS after a certain number of cleared tiles,
for depth and color.
Auto-disable is enabled in the pipe_clear() function and disabled
when a new framebuffer is bound.
utils: add viv_throughput utility for measuring fillrate

This new utility uses the gallium pipe driver to render quads
of a certain size, benchmarks the time spent and compares the
performance counters.

Also add debug flags to disable early z and supertiling respectively.
driver: Disable early z reject when no depth test is enabled
driver: use TS clear value for initial TS fill
etnaviv: rename GPU_TOTAL_READ_64_BYTES_PER_FRAME perf counter to GPU_TOTAL_READ_64_BIT

I'm not sure where the 64 bytes came from, but it's wrong, it's per 8
bytes (64 bits).
utils: add dma occupancy mode to viv_gpu_top
Added missing #includes

malloc needs stdlib.h
memset needs string.h
Fixed build with GCC 4.8.1

Made inline functions static, otherwise -Werror=missing-prototypes will
trigger on them.
Replaced generic gct* types by their definition

gctBOOL, gctPOINTER and gctUINT64 were replaced.
I left in gctHANDLE and gctPHYS_ADDR for now.
Sync include_v4_uapi with kernel 06ea9eae

This removes the generic gct* types. Since all of them were replaced
by types of equal size, binary compatibility is preserved.
utils: remove useless mode from viv_gpu_top
utils: add help message for viv_gpu_top
Replaced gcs2D_PROFILE_PTR by its definition
tools: Add _rmk_'s deobfuscation scripts for kernel drivers

The kernel drivers in kernel_drivers can be run through these to make
them more readable.
tools: add deobfuscator for v4-uapi
etnaviv: remove profile counters never set by kernel at all