Started looking at improving integer support.

Decode the data type of constant buffer member variables in order to
find out which ones are integer.
Uniforms are now declared using member variable type information rather
than always being floating point vec4 arrays. Only done for the non-ubo
case at the moment.
Some support for taking a compile-time-known index into the uniform +
swizzle and working out which named uniform it is.
Keep track of which data type each temp register currently is.
Inputs and outputs are now integer if they are meant to be.
Line ending changes.
Support declaring named array members of constant buffers.
Support dynamic index on named constants
Don't swizzle named scalar constant buffer members.
Merge from master.
Merge branch 'master' into Integer
Merge from master
Support boolean-typed constants using integers.

Boolean constants are now recognised. They are declared as integer in
the GLSL code - this allows implicit conversions to integer and bool
still consumes 4-bytes in GLSL.
Data-type information for dx9 constants.
Check uvec support before declaring uvec temps.
Merge branch 'master' into Integer
Remove samplers from dx9 constant buffers.

They should only appear as resources.
Fix movc with boolean constant as the condition

Seen with ps4\RaycastTerrainShootRayPS test
movc r0.xyz, cb0[0].wwww, r0.xyzx, cb1[11].xzyx
where cb0[0].wwww is a bool type constant.
Previously would generate 4 if-else statements with (illegal) .x, .y. z.
and .w swizzle on the boolean. Now it is just 1 if-else statement with
.x after upcast to vec4.
Implement pixel shader derivative instructions.

deriv_rtx and dsx compile to dFdx.
deriv_rty and dxy compile to dFdy.
Check pixel shader input usage.

ps3\derivative has
dcl_texcoord v0
but v0 was being compiled as BaseColor instead of TexCoord0.
Implemented texkill
Allow texkill to operate on vec4 for SM2 onwards
Implemented pow, dp2add, lrp and texldd opcodes.
Implemented slt and sge opcodes.