[New Feature] I2C position encoder support (#6946)
* [New Feature] I2C position encoder support
I plan to continue improving/cleaning this up, as there areas that need work.
* let the cleanups begin.
* progress
* more progress
* comments, rename files, etc.
* clean
* Cleanups per thinkyhead
* a few more cleanups
* cleanups, bugfixes, etc.
* remove unnecessary passes_test(), additional cleanups/optimizations
* cleanups
* misc.
* Fix up I2CPEM.init() and a few other things.
* organize, fix, rename, etc.
* more optimization
* a few more tweaks
* Unify M600 and M125 pause features
* Cleanup per thinkyhead's comments
* Rename filament_change_menu_response to advanced_pause_menu_response
* Include HAS_BED_PROBE in QUIET_PROBING
* Update gMax example file
* is_idle() is out of scope without the braces
* Convert FT-i3-2020 to Advance Pause names...
* Allow pause even if not printing
add BLTouch-related messages in english and (rusty) french;
add missing endstops.h in ultralcd.cpp;
fix misc. compiler warnings;
fix lsf_reset - ZERO macro can't handle a pointer as it would only memset the size of the pointer, not the size of the entire struct