Shader improvements, actually use light_parameters_in uniform

Add compile-time ENABLE_DIRECTIONAL_LIGHT_SPILL_OVER_FACTOR setting.
When enabled, the spill-over factor is configurable for each directional
light, with a spill_over field added to sreLight.

Use light_parameters_in[] uniform in shader and initialize the uniform
in shader_uniform.cpp.

Add a function to dynamically create definitions for a specific shader
and rename a number of shader compile-time definitions for consistency.

Add a type_index field to sreLight, representing the light type as an
enumeration rather than a bit flag.

Rename light_pass_shader[] to multi_pass_shader[].

Signed-off-by: Harm Hanemaaijer <fgenfb@yahoo.com>
Migrate random number library to DataSetTurbo

Migrate the random number generation library used from the internal
copy of sre-random to the DataSetTurbo library
(https://github.com/hglm/DataSetTurbo.git) which is essentially the
same but updated code. DataSetTurbo also provides other functions
such as dynamic arrays that can be useful.

Signed-off-by: Harm Hanemaaijer <fgenfb@yahoo.com>
Increase use of dynamic arrays, improve shadow volumes

Use DataSetTurbo dynamic array type for scene model array.

Use dynamic array type for scene shadow caster array.

Optimize/reorganize shadow volume code; make number of element buffers
more flexible, use GL_STATIC_DRAW when shadow volume will be cached.

Add -O to debugging CFLAG.

Signed-off-by: Harm Hanemaaijer <fgenfb@yahoo.com>