etnaviv: remove external dependency on kernel drivers

Software can now use -letnaviv without linking against specific kernel
drivers.

for the older samples add a copy of the old viv.c named viv_raw.c;
no point in keeping this up to date with the new interface, as the point
here is to replay raw data
etnaviv: fix command buffer deallocation
etnaviv: try /dev/galcore and /dev/graphics/galcore

Depending on the OS (Android or Linux) the device may be
in a different location.
etnaviv: implement queue system

Add code to allow for queueing kernel commands such as signal,
free video memory, unmap user memory. This will make it possible to
immplement fences, fenced buffers, and push buffers.
etnaviv: queued unmap/free for etna_vidmem
driver: initial support for multiple vertex buffers

Mesa requires a gallium driver to support multiple vertex buffers.
This commit provides initial support, although the hardware specific
cases and compatibility fallback still have to be handled.
driver: make unbinding vertex buffers possible

passing NULL to set_vertex_buffers unbinds a range of vertex buffers
driver: add missing etna_enum_convert.h
driver: multiple vertex buffers

sourcing from multiple vertex buffers emulated on gc600/800 using
translate
native: use std=gnuc99

Required for OLPC toolchain, hopefully it will not cause problems
with others.
gallium: add PIPE_CAP_MAX_VERTEX_BUFFERS capability
driver: move vertex buffer interleaving to u_vbuf

Remove code for vertex buffer interleaving from the driver; this is
already implemented in u_vbuf, we can simply use that code after
adding the maximum vertex buffer capability.
driver: do transfers in-place if possible

Only allocate and copy a buffer when this is neccessary, when a
texture needs to be tiled.
driver: move etna_tex to etnaviv
driver: add fences
comments update
driver: support cbuf without zsbuf

Render to color buffer without depth surface.
zsbuf without cbuf (depth only) should work as well, however this is untested.
driver: support unbind constant buffer

This is a no-op because we only support user buffers and don't keep
the pointer around. The memory is simply copied when setting the
buffer.
Add POSIX_C_SOURCE and GNU_SOURCE defines

These are needed on many newer platforms, include them by default
so that they don't have to be defined in PLATFORM_CFLAGS.
driver: fix stencil alpha in mesa

Set stencil operations to KEEP if write mask is 0.
When the write mask is 0 and the operations are not set to KEEP,
the GPU writes the depth buffer for the entire primitive and not
just the area where the stencil test condition holds.