Handle primitiveID in TranslateVariableName
Implemented ineg opcode.
Handle float3 position output from hull shader.

Found a case where only .xyz of position was written during control
point phase. AddBuiltinOutput now checks for fewer components written
than should be.
Don't force to 4 components for integer casts.

Previously,
ushr r1.y, vPrim, l(3) became
Temp1.y = uvec4(gl_PrimitiveID) >> 3u;
Now it is
Temp1.y = uint(gl_PrimitiveID) >> 3u;