found an off-by-one, see if this works
found another off by one, starting to wonder how original code ever worked
works! hooray! add some final cleanups and clarifications
Revert "Revert "Merge branch 'fix/Queue_scan_consolidation' into edge""

This reverts commit e918c030e3ced39ce7d6f8d7a66d1ce8bb78e7d9.
Merge branch 'fix/Queue_scan_consolidation' into edge
Use static kernel singleton pointer instead of per-class instance pointer
replace all uses of module::kernel pointer with kernel::instance singleton pointer
Replace all doubles with floats including some constants
replace strtod with strtof
replace sqrt, hypot, sin, cos with float variants (ie sqrtf, hypotf, sinf, cosf)
missed an atan() in Robot, changed to atanf
no need to copy input now input is already float
Merge pull request #300 from wolfmanjm/upstreamedge

no need to copy input now input is already float
Added M501 to load config-override
renamed old M501 to M502 as it should have been for removing config-override
Added M504 xxx to save to config-override.xxx
added load/save to load and save names config override files
Make Filestream open for "w" not "a"
Merge pull request #303 from wolfmanjm/upstreamedge

Added M501 to load config-override
Fix M500 and M503 for PID values M301
Merge pull request #304 from wolfmanjm/upstreamedge

Fix M500 and M503 for PID values M301
Update config
Fix acceleration bug where an extruder only move was though to be a real move and uninitialized fields were being used to calculate trapezoids
Fix partial memory leak where the blocks gocde vector was not being cleared when it was popped from the tail
rename RingBuffer::delete_first() to delete)tail() to reflect what it actually does