Implement bisecting raymarcher
Implement bisecting raymarcher

This patch moves the raymarching code into a new function `Eval` and
makes some changes to make the result more accurate. The `main` function
now calls `Eval` with a smaller number of samples to narrow down the
region in which a match exists. After this, `Eval` is called again for
additional samples, in order to home in on the correct result.

polar-engine/polar,polar-engine/polar,shockkolate/polar4,shockkolate/polar4,shockkolate/polar4,shockkolate/polar4