Path Tracing, Camera Abstraction

Adds path tracing including camera abstraction to switch between rasterization and path tracing.