glsl: Allow linking of tessellation shaders.

Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
glsl: Allow tess control and tess eval shaders without VS if separate

Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
glsl: Make lower_clip_distance work with tessellation shaders.
glsl: Lower gl_TessLevel* from float[n] to vecn.

Similar to gl_ClipDistance -> gl_ClipDistanceMESA

V2 [Chris]: Fix rebase issues.
glsl: lower_tess_level: Use writemask instead of vector insert op for constant swizzle.
glsl: patch in/out qualifier
glsl: keep track of which inputs/outputs are per-patch
glsl: Add "In" or "Out" suffix to name when flattening interface blocks.

This is to prevent a name conflict in tessellation shaders built-in interface
blocks.
glsl: Add builtin uniforms for default inner/outer tess levels

If the hardware needs to always have a control shader present if
and evaluation shader is present, then the control shader will need
these values.
glsl: Make stand-alone compiler work with tessellation shaders.
glsl: Don't lower indexing with gl_InvocationID in the TCS to cond assign
glsl: relax unsized input/output block arrays for TCS/TES
glsl: Add missing newlines to various resource limit errors

Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
glsl: Allow nonconst indexing of arrays where we can work out an implicit size

Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
glsl: Add builtin constants for ARB_tessellation_shader
glsl: more implicit sizing probably junk
glsl: Fix linking of VS outputs to TCS inputs

In the TCS, these are all arrays, just like GS inputs.
glsl: Restrict indexing for writes to TCS outputs to gl_InvocationID

Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
glsl: properly size unsized arrays in tess stages
glsl: make gl_PatchVerticesIn a system value

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>