LightingShaderGen: Use a float4 array for lights instead of a struct (uniform management in the non-UBO path is a mess otherwise). Also fix a small bug (cf. revision 154c533e7632).