The heuristic calibration engine has been coded to the point of basic functionality. On my printer, I've seen it converge endstops and delta radius AT THE SAME TIME. It's fairly quick, too! The rest of the stuff (tower radii, etc.) isn't there yet, but it should be easier now. I will converge the endstops and delta radius before doing any other changes because they nudge each other, and I need them to be reasonably accurate before I can start messing with tower radii and all that.

Studied and took COPIOUS notes on Rich Cattell's delta calibration routines in order to figure out what effects are caused by various types of mis-calibration, or at least what he thinks the effects are. I wrote a bunch of pseudocode to help myself understand it, and this is visible in an enormous comment block, at least for this commit. (Yeah, I kinda need it there for now.)

Added calibration types (caltypes) as a struct containing classes for each calibration type. The classes are basically just structs that know how to initialize themselves. I don't need anything further from them so I'm not going to waste time/memory making them more OOP-like.

Depth map changed to have TP_CTR at the center-point so I don't have to hand around the value determined in depth_map_print_surface().

depth_map changed to a struct that has .abs and .rel (absolute and relative) members. I need both figures, and it's convoluted and ugly to do otherwise.

Added code that looks at the caltype to see which test points we need to hit. We DO NOT want to test all of them every pass - it would take forever and we'd throw away most of the points anyway. (Really!)

get|set_delta_basic_geometry() split off into get|set for arm length and delta radius.

Corrected comment on post_adjust_kinematics(offset[3]). It said the offsets are positive before, but that's actually how Repetier does it. Offsets are NEGATIVE in Smoothie!

God rid of some stupid "magic numbers." Everything should be a variable or a constant. Bare numbers are often spaghetti and I don't like them!