Use macros that explicitly avoid double-evaluation and can be used for any datatype, replacing `min`, `max`, `abs`, `fabs`, `labs`, and `FABS`.
Co-Authored-By: ejtagle <ejtagle@hotmail.com>
Also... The memory corruption issue may be fixed. The GCC compiler
was inlining static functions and this caused the G29() stack frame to
become much larger than the AVR could handle.