driver: improve varyings and flat shading handling

According to the gallium documentation when flat shading
is enabled, fragment shader inputs with
TGSI_SEMANTIC_COLOR should not be interpolated. However, all other
varyings must be.

This was not implemented correctly in our varyings conversion pass which
caused problems with the blitter. This behavior has been fixed
in this commit.

In the process I figured out the meaning of bit 0 of pa_attributes.
The meanings of the other bits are still unknown.
tools: fix etnaviv_gdb module load

A syntax error snuck in.
Also add beginnings of a gpu-inspect tool to inspect etna resource contents.
This is very primitive right now (used it to debug a blitter issue)
so don't add it to docs yet.
driver: flush color and depth cache before clearing anything using RS

Not doing this caused a synchronization issue in the blitter, in which
the destination texture was not properly rendered yet before using it.
driver: try blit via copy region

May be faster in some cases and makes sure that copy_region is exercised as well.
driver: disable PIPE_CAP_PREFER_BLIT_BASED_TEXTURE_TRANSFER

Don't use the blitter unnecessarily when simple copying
suffices.
driver: split up etna_pipe

Add separate implementation files for blend, rasterizer, surface,
texture and zsa.
driver: clean up CSO functions

There should be no semantic changes.
driver: check generated instructions

Warn when an instruction is generated that uses two different
uniforms.
driver: further split up etna_pipe.c

Move clearing and blitting functionality to module `clear_blit`.
etnaviv: document hardware counters

Add comment specifying which register is read for which hw counter.
driver: update gallium to 0794f63

After Mesa rebase.
driver: correctly clear non-ts surfaces

This fixes the hang bug in glmark demo 'desktop'.
replay,egl: Fix compilation errors.
 - GCC throw errors on non-static functions without prototypes in headers.
 - Fix missing prototypes error.
work