driver: comment update, small refactor of sync_context
fb: fix out-of-bounds bug in alpha blend sample
driver: set up TS before blit to framebuffer

This appears to fix most of the TS problems.
Re-enable TS again for color and depth framebuffer surfaces.
Depth still seems to have some problems (visible in quake as
see-through-walls).
driver: disable depth compression

Causes corruption (blocking) issues in glquake when
TS is enabled.
etnaviv: Avoid including gc_hal_kernel_context.h

Fixes the build when GCABI=v4.

There is no gc_hal_kernel_context.h in include_v4/, but the only
thing from that header that was actually required was the include
of gc_hal_kernel_buffer.h, so include that directly.
driver: make etna_compile_rs_state more flexible

Allow writing the RS command to another place except inside the
etna_surface structure (mainly useful for debugging, and preparing to
use the RS in other places such as blitting).
driver: parse ETNA_DEBUG environment variable for debug flags

This includes `no_ts` to disable tile status, and `cflush_all` to
flush before every state update and draw call.
driver: uncomment set up TS before blit

The code to set up the TS to the source surface before blit should be safe to use now.
Only change TS if it differs from the desired state (so if necessary).
Some flushing may still be needed when changing TS value we'll see
that soon enough.
fb_old: cube_companion → cube_companion_msaa

Update old replay demo to run on cubox, to check how to get MSAA to work.
tools: don't show INST_MEMs in normal state dump

Makes state dumps somewhat more readable.
driver: implement MSAA

For now, use ETNA_DEBUG="msaa4x" or ETNA_DEBUG="msaa2x" to force usage
of MSAA for screen surface (MESA may have its own way for this...).
driver: return more informative name
include_v4_uapi: Added stripped down version of the kernel headers

These headers contain 2384 lines, while the original include_v4
contains 20937 lines worth of headers.

The compile time options that affect the ABI have been reduced to
four: VIVANTE_NO_3D, VIVANTE_PROFILER, gcdSECURE_USER and gcdDEBUG.
See gc_hal_options.h for details.

The individual steps in stripping the headers can be found in the
jz-3.10 branch of the GCW Zero kernel repository:
  https://github.com/gcwnow/linux/commits/jz-3.10
etnaviv: use two-stage unlock, to avoid memory leak with v4 drivers
driver: compiler improvements and fixes

- Fix number of uniforms limit check
- Fix over-eager passthrough optimization in `etna_compile_pass_optimize_outputs`
- Comment updates and clarifications
driver: flush TS after flushing depth and stencil

Flushing TS while still rendering to color/depth can sometimes hang,
so flush TS after flushing color and depth instead of before.