[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