Add shadow-side illumination, prepare new light parameter uniforms

Add compile time option (DIRECTIONAL_LIGHT_SPILL_OVER_FACTOR) to
apply lighting to the shadow side of objects with a directional light.
This way, the shadow side of an object will show geometry more detail
without having to be illuminated by another light. This does not work
with shadow volumes since the non-light facing side of the object is
in shadow. Ideally, the parameters should be part of the parameters
of the directional light and not a compile time setting.

Prepare a change in light parameter uniforms, moving them into an
array of floats for increased efficiency and to free up uniform slots.
The lighting pass fragment shader has already been prepared to use
the new uniforms, but currently assigns the old uniform parameters
to the new variables for compatibility. The next step is changing
the uniform functions for light parameters in shader_uniform.cpp to
use the new uniform array.

At the moment, a few rendering bugs are apparent after this change
(such as some areas sometimes not receiving light from a point source
light), probably because the fragment shader at the moment does not
support the case of a light being a general local light (point source,
spot or beam light).

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