IMPORTANT: Probe offset is broken and G32 hasn't been tested, so don't use either in this release. I'm pushing this for the benefit of others who might like to experiment with the changes below.

EXPERIMENTAL:
Added support for adjusting Z according to depth map using bilinear interpolation. It seems to work well so far, but it requires more refinement. On my printer, I went from a standard deviation of 0.197 to 0.012, which is marvelous! It works by passing a closure to the robot, which it uses to ask the strategy for the correct Z offset according to the current (x, y) position.

Since the robot will ask the strategy for Z corrections (when enabled) hundreds of times per second, it's important that the bilinear routine be as efficient as possible. I gave it its own class structure, bili, which contains all the variables it uses during calculation. This way, we don't waste time allocating variables on the stack. There are also a bunch of calculated values that are used more than once, so those values are calculated only once and stored in bili. The array scaling factor (which translates the scale from Cartesian to depth map array) is the only thing I know how to precalculate, and it is. The goal is to have this run fast enough that it may be ported to Atmel-type 16MHz controllers. Those controllers are ridiculously overpriced for the lame, 1980-era microcontroller you get, but sadly, they remain the default in the 3D printing community.

What was simulated annealing before is simulated PARALLEL annealing now. You can specify a separate temperature multiplier per variable! There are cases in which this helps the values converge faster and more accurately.

Rather than updating the printer every time a parameter is moved in the annealing loop, we wait until they all get a chance and then update the printer at the end of the annealing loop. This also helps the values converge a lot faster, because it takes the "order bias" out of the loop.

Individual arm offset code disabled. This never did anything good for me in simulation or on the printer.

Delta and tower radius code merged into one operation. It finds the optimal tower radii, then normalizes them to delta radius. This way we don't have to separately calculate the optimal delta radius.

Added support for the print surface being either square or circular. (It will normally be circular, but I know at least one vendor that has shipped delta printers with square beds for various reasons.)

Replaced the old bed test points, which were at various geometrically interesting locations (TP_X, TP_OPP_X, etc.) with a regular 5x5 grid. I think that might have to be 7x7 or more for "really" good depth correction.

Changed a few defines to enums, and made functions accepting them require the actual enum type rather than just "int".

Moved some methods around in ComprehensiveDeltaStrategy.cpp to make their order more sensible.

Reorganized ComprehensiveDeltaStrategy.h to be easier to read.