Refactor|Renderer|LightGrid: Reimplemented LightGrid

Separated IPointLightSource from ILightSource so that the latter can
be used as the base for non-point light sources.

LightGrid::IBlockLightSource (based on ILightSource) is the (abstract)
base for illumination sources. SectorCluster is one such source.

LightGrid light source grid CoverageData is now managed internally.

LightGrid (re)initialization was revised to separate light source
coverage determination from logical grid initialization. New sources
can now be created dynamically without needing to rebuild the logical
grid.

LightGrid no longer observes Sector light color/intensity changes.
Instead, IBlockLightSources are obliged to notify the LightGrid when
their lighting properties change for scheduling of block updates.

Revised LightGrid internal representation to clean up the "null block"
optimization.

Separated the light grid debug visual into rend_main.cpp for now.

The map renderer now obtains the effective lighting properties from
SectorCluster directly (using the same method as IBlockLightSource).

Experimenting with sector light color & intensity as Vector4f.