Add configuration option for weighing method in BidirectionalPathTracer

Use "uniform" for the current method.

Feature-Start: bdpt-mis-basic
Add scaffolding in PathVertex for switching on the weighing method
Add more scaffolding in PathVertex for backwards PDF computations
Implement PDF computations in PathVertex.SampleNext()
Add more scaffolding in PathVertex for connection PDF computations
Implement PathVertex.computeConnectionPdfBackwardsSA()
Implement PathVertex.computeConnectionPdfForwardSA()

Leave cases needed for light image paths unimplemented for now.
Make weight comparison more robust in BidirectionalPathTracer
Use MIS (with power weights) for all BDPT scenes

Turn off light contributions and direct sampling for now.

Feature-End: bdpt-mis-basic
Implement PDF computations needed for light image paths

Feature-Start: bdpt-mis-light-image
Re-enable light contribution recording for all BDPT scenes

Feature-End: bdpt-mis-light-image
Propagate DirectSample{Light,Sensor} setting to PathVertexContext

Feature-Start: bdpt-mis-direct-lighting
Use separate subpaths when direct sampling is used in BidirectionalPathTracer

This is necessary since some methods work on the entire subpath instead
of just the last few vertices (for example,
PathVertex.ComputeExpectedWeight()).
Use the right pdf values when direct lighting is used in PathVertex
Re-enable direct lighting for all BDPT scenes

Feature-End: bdpt-mis-direct-lighting
Use the right pdf values when direct sensor sampling is used in PathVertex
Re-enable direct sensor sampling for all BDPT scenes

Feature-End: bdpt-direct-sensor-sampling