First try at contact-hardening soft shadows
With a lot of help from http://maxest.gct-game.net/content/chss.pdf, a glance at AMD ShadowFX, and https://developer.download.nvidia.com/shaderlibrary/docs/shadow_PCSS.pdf
And thanks to GLSL for allowing only a single override to texture() for sampler2DShadow, making the HLSL->GLSL conversion complicated for no valid reason. (I'll have to integrate the HLSL version at some point too)