Major improvement to many-lights sampling.

Taking into account the surface normal, and doing some hand-waving magic
with that that seems to work really well.  Dunno if this will generalize
to other BSDF's than lambert, though.  Left a todo note regarding that,
for when other shaders are added.