etna: use proper gallium objects with downcast where necessary

Use included gallium headers instead of the mess in minigalliumh.
This makes it possible to include the shader compiler.
codegen test: correct shader generation

- add z=(z+w)/2 for older GCxxx
- refuse to create empty shader