Add TracerWeightTracker class for {Path,Particle}Tracer to compute weights

Feature-Start: tracer-weight-tracker
Make PathTracer use TracerWeightTracker
Make ParticleTracer use TracerWeightTracker

Feature-End: tracer-weight-tracker
Implement TwoWayPathTracingRenderer

Feature-Start: twpt-basic
Add TwoWayPathTracer versions of all scenes
Make TracerWeightTracker keep track of q (backwards probability) values
Add TracerPathType.ComputePathCount() method to be used for testing
Take into account backwards paths in PathTracer when using uniform weights

Check uniform weights against PathTypes.ComputePathCount() in
PathTracer.
Take into account backwards paths in ParticleTracer when using uniform weights

Check uniform weights against PathTypes.ComputePathCount() in
ParticleTracer.

Feature-End: twpt-basic