A half fix for a bug where particle systems were not detected in light contact tests.

There still exists a bug that will be fixed in future commits.
Cleanup and improvements to the default culling manager.
More cleanup to the default culling manager.
Fix a bug in the default culling manager.
An intermediary commit in preparation for a re-structuring of the default scene renderer.
The first of many commits restructuring the code for the default scene renderer.
Comment out a function that was causing a memory leak.
Initial work on the new light grouping structures for the default scene renderer.

Nothing actually uses this at the moment, but will be integrated in the next commits.
Integrate the new light grouping structures into the default renderer.
More the default scene renderer mesh structure to it's own file.
Introduce the notion of a shadow visibility processor.

This class is responsible for processing and storing meshes that will be used as shadow casters for lights.
More reorganization of the default scene renderer.
Introduce the notion of a visibility processor to the default scene renderer.

The purpose behind this is to perform visibility checks on anything relevant - viewport cameras, lights (for shadows) and whatever else in the future.
Renaming in preparation for a new lighting implementation in the default scene renderer.
Introduce the notion of a light manager to the default scene renderer.

This is a foundational change for future improvements to the lighting system.
Have the light manager be responsible for sub-dividing light groups in the default renderer.
Reorganisation to the default renderer.
Some foundations for the new dynamic material shader system.
Fix a compilation error due to recent changes to GLM.
More foundations for dynamically creating shaders by the the default renderer.