Add clipping vertex shader

Also removed template.asm/.o. Use templateVS.asm/.o and
templatePS.asm/.o instead.
Fix clip distance outputs. Re-factor built-in outputs.

Clip distance can be spread across 1 or 2 outputs (each no more than a
vec4). In GLSL the clip distance built-in is an array of up to 8 floats.
So vector to array conversion needs to be done.
Most GLSL built-in outputs now go through AddBuiltinOutput(). Writes to
built-in outputs are done first to vec4 temp variables and then the temp
variables are assigned to the built-ins. This method matches the vec4
nature of the bytecode output registers and allows the conversion from
this vec4-layout to the appropriate type/layout of the GLSL builtin to
be done as an extra step before the shader ends.