hlsl2glsltest: add glut fallback version
fix CMakeList
remove unistd.h
Add support for non square matrices

* Non square matrices are glsl > 1.20
* Use glsl matrix conversion functions (> 1.20 too)
* various cleanups
Fix vector upward promotion for single argument functions
Add test for non-square matrix and vector promotion
handle upward vector promotion in TSymbolTableLevel::findCompatible

HLSL does not seems to follow Cg matching rules, for example, according to Cg
rules, lerp(float, float3, float) should call lerp(float, float, float), but
HLSL calls lerp(float3, float3, float3). In order to achieve that, arguments
are iterated over from biggest vector to lowest instead of left to right.

this also fix TType::determineCompatibility
Add overloading tests
fix in type construction for swizzle
update tests results matrix non square
Fix bad order in HLSL matrix rows/columns, add definitions for mul(float.*, float.*)
various swizzle and arrays fixes.

 1..xxxx and array[float(1)] are now supported
add execute permission to bison and flex
Add tests for tokenpasting and global initialization
Add support for more semantics
promote constant union to right type, plus fixes
fix EOpRightShiftAssign output, >>=, not ??=
Fix inverted left and right shift operators
add (shotgun style) coverage mask support
fix global-init test