Fix Decompiler bug of "unexpected token ';'"

The code assumed a sampler format of r1.xyzw, and truncates the output based on the texture size.

For constants like float4(x,y,z,w), that would generate errors as the closing parens was lost, and all wrong.

The fix looks for float constants, and truncates as appropriate to generate proper constant at HLSL.  Thus float4 becomes float2, to avoid warnings about wrong size of constant.
Merge branch 'master' of https://github.com/bo3b/3Dmigoto