It looks like there might be a precision problem that is causing some
rays to terminate before they start. However, I leave that to someone
else to diagnose.
I suspect that this test is not actually mapping colors correctly, and
the difference in images might be part of that problem. However, I leave
that to someone else to diagnose.
The previous functions that enabled the render regression tests were
heavily templated, which required every test using rendering to
recompile the entire rendering system being used. Changed the interface
to not rely on templating so that the RenderTest method can be moved
into a library.
Also moved the options into a struct where they can be better managed.
The render testing functions tended to have lots of arguments that were
difficult to manage. Instead, created a single `struct` that holds all
the potential options. That way when someone specifies on option, it is
clear what option is being set.