WebGLDeferredRenderer: trying to fix AreaLights.

The problem this tries to address is - how to incorporate surface normals into diffuse term area light calculations. The original approach completely ignored surface normals, which resulted in both light shining on backfaces and lit surfaces not showing any shading. This made prettier empty box with very soft look but anything inside the box had completely flat diffuse term.

Not yet fully solved. I tried myriad variants, all methods I could come up with had some problems. This one for example breaks down when the light emitter area intersects object triangle :S.

Also fixed handling of vertex colors for emissive term and tried a bit closer match with shininess strength between area lights and other light types, though this is tricky, seems it would require some non-linear mapping.
WebGLDeferredRenderer: added API for injecting postprocessing effects into deferred rendering pipeline.
WebGLDeferredRenderer: added tonemapping.

Based on http://filmicgames.com/archives/75
Merged with alteredq branch