Add SampleConfig.CombineWith() method

This will be used to generate a SampleConfig that can be used for any
light.
Add more scaffolding to ParticleTracingRenderer and ParticleTracer

Determine sample count from sensors, and also handle the emitInterval
option.
Add ComputePixelPositionAndWe() method to Sensor
Pull out common radiometric functionality into Radiometer class
Add spectrumEstimatorPair class and make Radiometer use it

This is in preparation for supporting sampling starting from light
sources.
Add support for light-sampled contributions to Image class

This is in preparation for supporting samples coming from light
sources.
Add support for writing separate images for sensor and light pixels
Add methods to Sensor for accumulating light samples and recording them

Also add method for accumulating debug info.

Rename and comment existing Sensor methods to mention that they are
for samples coming from the sensor.
Add sensor list to Intersection type
Implement accumulation of alpha onto sensors
Make sampling method for DiffuseAreaLight configurable

Also add support for cosine sampling in DiffuseAreaLight.
Avoid modifying Sensors directly in ParticleTracer.SampleLightPath()
Implement recording of debug info for ParticleTracer

Record weighted importance for level 1 and the importance and weights
separately for level 2.
Add option to control exposure of ParticleTracer debug images
Implementing blocking for ParticleTracingRenderer to bound memory usage
Use multiple goroutines to process samples in ParticleTracingRenderer

Also switch back to counting samples for progress output.

Feature-End: particle-tracer
Add irradiance meter to hollow sphere particle tracer scenes

Feature-Start: particle-tracer-direct-sensor-sampling
Split disk irradiance scene into path/particle tracer versions
Split square irradiance scene into path/particle tracer versions
Split Cornell box scenes into path/particle tracer versions

Also consolidate room geometry into its own file.