driver: fix vertex elements issue

The END field of VERTEX_ELEMENT_CONFIG was filled in wrongly.  Compute it correctly now.
driver: correct front_ccw for mesa integration

Mesa flips the y viewport scaling based on screen/framebuffer,
to follow the GL spec. This commit makes sure that the correct CW/CCW culling is used.
driver: framebuffer handling

Most of etna_fb is not currently used in the mesa driver, even
though it has functionality not in mesa, such as determining
an exact match RS format and red/blue swap from
linux framebuffer attributes. Expose this function.
memory management improvements

- proper reference counting in driver
- unlock video memory before free
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
Merge pull request #4 from laanwj/master

update to master