Rework input registers to allow different inputs to be packed into a single vec4.

Example:
dcl_input_ps constant v3.x
dcl_input_ps_sgv v3.y, primitive_id
utof r0.x, v3.y
utof r0.y, v3.x

Previously:
flat in  vec4 VtxGeoOutput3;
#define Input3 VtxGeoOutput3
Temp0.x = vec4(gl_PrimitiveID).x;
Temp0.y = vec4(gl_PrimitiveID).y;

Now:
flat in  vec4 VtxGeoOutput3;
vec4 Input3;
Input3 = VtxGeoOutput3;
Input3.y = gl_PrimitiveID;
Temp0.x = vec4(Input3.y).x;
Temp0.y = vec4(Input3.x).y;
Added GLSLCrossDependencyData

Allows the interpolation for pixel inputs to be known when creating the
vertex outputs. Prior to GLSL 4.30, vertex outputs and pixel inputs must
have the same interpolation qualifiers.
Fixes tests\apps\generic\idVS and idPS link failure.
Handle dependencies being unavailable when compiling vertex outputs.
Moved some max_* defines into shaderLimits.h