Implement hierarchical cube shadow maps

Implement hierarchical cube shadow maps for point lights. Cube
shadow maps ranging from 2048x2048 to 64x64 are available and
selected to render the cube shadow map for a point light depending
on the projected size of the light. This improves performance for
distant lights where a small shadow map can be used while increasing
shadow quality for close lights for which a large shadow map cam be
used.

The projected size of the light volume is not ideal as a selection
criterion, it results in dependence on the view angle with the light
position (if the light source is outside the screen but close to the
near plane, the projected size will be much larger than when the
light position is visible).

Signed-off-by: Harm Hanemaaijer <fgenfb@yahoo.com>
Use better calculation of projected size

Calculate the projected size of an object or light (based on the
bounding volume or light volume) using the distance to the
viewpoint, rather than applying the view-projection matrix. This
way, is no dependence on the distance to the view plane.

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