Implemented Variance and Exponential Shadow Mapping.

Refactored Depth computation shader parts
Renamed MatrixShadowMapping to PCFShadowMapping because, in a way, that's what it is.
Fixed something that I inadvertently broke in VSMs
Add a FirstPersonCameraController with basic walk/strafe actions.
Fix invalid NaN comparison.
Enable Mouse Lock API when available in the FPS camera.
very minor changes on VSM/ESM
fix wrong import for getQualifiedClassName()
Merge remote-tracking branch 'refs/remotes/github-aerys/dev' into dev