many fixes related to scattering modes and IBL contributions.

this commit revises and supersedes these two commits:

    86fed1bd052b4ee705975512e41f078e8e3faa6f ("fixed an image-based lighting error...")
    93c085f675b24e2bd8c9a6332200bbedb1a478bb ("fixed double contribution of the lighting from the environment...")

details of this commit:

  - fixed discrepancies in IBL contributions on multi-component BSDF (such as Ashikhmin-Shirley) between path tracing with and without next event estimation.
  - the distributed ray tracer no longer compute caustics.
  - the path tracer (without next event estimation) no longer compute direct lighting when direct lighting is disabled.
  - the path tracer and the distributed ray tracer no longer support using more than one BSDF sample to compute direct or image-based lighting.
  - greatly reduced variance of direct lighting on glossy surfaces (affects both the distribution ray tracer and the path tracer with next event estimation).
cleaned up test suite: scattering modes.
updated reference images after recent patches.