Make Light.Sample{Surface,Direction}() return a pdf value
Add a configuration option for two-way path weights

Name the current one "uniform".
Keep track of the denominator for the pdf ratio for light paths
Factor in direct lighting and adjoint pdf into pdf ratio for light paths
Return surface information from Sensor.SamplePixelPositionAndWeFromPoint()
Add Shape.ComputePdf() method and implement for all shapes
Implement ShapeSet.ComputePdf()
Implement Sensor.ComputeWeSpatialPdf()
Implement Sensor.ComputeWeDirectionalPdf()
Add the last few factors to pdfRatio for light paths

Also plumb pdfRatio all the way down to the light path weight
calculation.
Make Sensor.SampleRay() return a normal and a pdf value

Also call it from TwoWayPathTracer.sampleSensorPath() instead of
TwoWayPathTracer.SampleSensorAndLightPath().
Keep track of the denominator for the pdf ratio for sensor paths
Add Sensor.ComputeWePdfFromPoint() and implement for all sensors
Factor in direct sampling and adjoint pdf into pdf ratio for sensor paths
Implement Distribution1D.ComputeDiscretePdf()
Implement Scene.ComputeLightPdf()
Add Light.ComputeLeSpatialPdf() method and implement for DiffuseAreaLight
Add Light.ComputeLeDirectionalPdf() method and implement for DiffuseAreaLight
Return surface information from Light.SampleLeFromPoint()
Add the last few factors to pdfRatio for sensor paths

Also plumb pdfRatio all the way down to the sensor path weight
calculation.