driver: rename a few utility functions

Add etna_ prefix to utility functions to make it clearer where they come
from.
driver: Set up early depth

And some documentation changes.
utils: move utilities such as viv_gpu_top to separate directory

Split them off from fb and replay, where they don't belong.
Some of these are useful beyond reverse engineering.

Also add a few utilities not part of etna_viv before:

- viv_registers: print contents of all (non-crashing on read) GPU registers
- viv_watch: watch debug registers
gallium: rename to minigallium

Name makes it clearer that it is a subset for internal use only.
driver: Set bit 24 of PE_DEPTH_CONFIG correctly

Bypasses ZS buffer write when stencil and depth is not written.
minor documentation and utils updates
etnaviv: Fix destination stride issue

This solves the texturing problems in Ken's labyrinth
(and many other applications, probably).
driver: fix hang issue when rendering large quad after clear

Synchronization appears to be needed after clear.
driver: reduce per-draw GPU overhead a bit

Send new vertex elements state only when changed.
driver: CSO optimizations

- Copy small CSOs instead of dereferencing pointers. We do need to keep
  around the pointer as well to save state for the blitter, but apart
  from that, the state weaving no longer dereferences pointers which
  should be more cache efficient.

- Add likely/unlikely based on the likelyness of a certain piece of
  state changing. Used some guesswork here, eventually it may be useful
  to profile it under various workloads.
driver: viewport scale and offset xy as fixp

Prepare for v4 state delta (context switching) support.
The kernel expects these fields to be fixp, so we do too.
fbdemos: heed EGL_FBDEV_BUFFERS just like our mesa driver
utils: add "max" mode to viv_gpu_top

Find maximum throughput of various counters, this will help determining
the utilization computation. Also implement full argument parsing using
getopt.
driver: don't add pointsize output if shader doesn't set point size

Don't add pointsize output to vertex shader if that shader doesn't
assign the point size. Even if point_size_per_vertex is enabled in
rasterizer configuration. This is done because Mesa *always* sets
point_size_per_vertex to enabled with OpenGL ES, no matter what
the shader does or whether points or other primitives are rendered.
utils: add total instructions counter to viv_gpu_top

Also solve miscounting bug for a few counters.
driver: assert that number of vs inputs matches with vertex elements
driver: implement blend_state.dither

Also fixes alpha blending when using 16 bit render target (manifested in
kenlab).
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