driver: implement blit

for now use the u_blitter for everything
this pulls in a lot more files from gallium as the blitter renders
a quad.
still untested!
driver: implement etna_screen_is_format_supported
driver: disable blitter for now

causes segmentation fault on creation
driver: NPO2 textures cap

also use gallium's u_math.h align function inside driver instead of our own
Some build fixes

- don't build gc600 specific tests with a plain "make", as they error
  out during compile for other platforms
- stdlib.h is needed for size_t in c++
driver: fix blitter creation issue

screen pointer on context was not set
etnaviv: separate out include files

move include files to etnaviv/*, this makes it easier
to package etnaviv as a library to be used by the etna
mesa fork.
gallium: uclib doesn't know backtrace_symbols

fix build in gcw0
driver: single buffer fallback

The gcw0 kernel currently makes only enough framebuffer memory
available for one 320x240 buffer.

Support variable number of buffers in bswap. This allows single
buffering, and (untested) triple-buffering as well.
driver: remove unneeded include of write_bmp.h
update mesa gallium to 3bba787
driver: fix umin/umax typo
driver: add -Wmissing-prototypes compile flag

harmonize compile flags with Mesa
use correct include file for GCABI_HAS_STATE_DELTAS
add viv_commit(..) for imx6 driver interface
fix compile error
make use of the correct _gc*CONTEXT struct
add GC2000 RS support - only compile tested
add GC2000 PE support - only compile tested
fix some compile problems