Add option to control Russian roulette weighing behavior

Set the option to consider Russian roulette for PathTracer and
ParticleTracer, but set the option to ignore it for TwoWayPathTracer.

Feature-Start: twpt-mis-basic
Make Light.SampleSurface() return a pdf value
Make Light.SampleRay() return a pdf value
Keep track of the denominator of the pdf ratio for light paths if necessary

Consider only direct light/sensor paths for now.

Leave TODOs to calculate factors for the numerator.
Factor in direct lighting and adjoint pdf into pdf ratio for light paths
Add Shape.ComputePdf() method and implement for all shapes
Implement ShapeSet.ComputePdf()
Implement Sensor.ComputeWeRayPdf()
Return surface information from Sensor.SamplePixelPositionAndWeFromPoint()
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 pdf value
Keep track of the denominator for the pdf ratio for sensor paths
Relax restrictions on Sensor.ComputeWePdfFromPoint()
Factor in direct sampling and adjoint pdf into pdf ratio for sensor paths
Add Light.ComputeLeSpatialPdf() 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.
Make most two-way path tracer test scenes use power weighing method

Feature-End: twpt-mis-basic