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.
* relocated ubl state to config. store:
* removed a number of ubl state variables and padding which were largely unused - saved 58 bytes of both SRAM and EEPROM;
* modified ubl sanity_check - no longer checks removed state variables that were otherwise unused, where checking didn't seem to accomplish anything, ultimately;
* removed pre_initialized state, saving 64 bytes of SRAM;
* removed automatic saving of UBL state after UBL activation/deactivation;
* consolidated multiple GRID_MAX_POINTS_X/Y to 'Global Leveling' section of EEPROM;
* minor update to G29 Sx notes/instructions;
* renamed mesh load and save parameter to 'slot' from 'm' for clarity;
Pretty much... The code is in place. Still more work to do. But it
has a lot of hooks and variables in other code, so commit and merge
before I pick up a million 'Conflicts'.
- Make all `unified_bed_leveling` data/methods static
- Move some UBL-related variables into the class
- Replace `map_[xy]_index_to_bed_location` with `mesh_index_to_[xy]pos`