Deceleration runout prevention has been added. Some decelerations (particularly with high speed and/or low acceleration)
may cause the probe to continue traveling down for several millimeters after it triggers. If your probe has enough travel
to accommodate this, it's not a problem, but if it doesn't, it will either retract unwantedly (leading to a probe crash)
or run out of travel (also causing a probe crash).

Runout prevention calculates the maximum number of steps the Z-probe may be moved down without exceeding the runout. If
this limit is exceeded, the downwards deceleration is immediately stopped and the probing routine will return false.

I also added methods to clear/get the runout flag. The flag is cleared automatically, so it doesn't require external
intervention, but it may be useful for something outside ZProbe.cpp to be able to sense when that happens.
Probe priming support has been added. This will run the probe a pre-set number of times in order to get it to "settle." This is to address a weird Z-creep error I've been seeing, even with deceleration turned on. On my printer, the probe settles in 5-7 probes. measure_probe_repeatability() used to show a range of 3-5 steps with standard deviations rarely, if ever, under 1. With priming set to 5, the range becomes 1-2 steps with a standard deviation of 0 to 0.6.

Eccentricity test has been turned off by default in measure_probe_repeatability().

measure_probe_repeatability() keeps track of your best score this session. That way, you don't have to scroll through 100s of lines to try to figure out the one with the lowest standard deviation.

Reordered the methods to make navigation easier: init and G-code handling at the top, then prep methods (prepare_to_probe(), etc.), then main calibration routines, then robot utilities (find_bed_center_height() etc.), then getters and setters, and finally code utilities (rotate2D(), etc.)

Redid the methods that take a *Gcode object to no longer do that, except for handleGcode(). It was too messy, so they take regular arguments instead.

Lots more error- and sanity-checking, and aborting if a probe fails.

Accelerations are done properly now. System accel is saved and restored, including when there's an error. All routines use the fast/slow feedrates rather than defaulting to system feedrate (which may be way too fast - on my machine, it's 1000.)

getCoordinates() removed - it was redundant, and not even a class member :(