Move endstop handling into a time-based procedure.

Before, endstops were checked on every step, wasting precious time.
Checking them 500 times a second should be more than sufficient.

Additionally, an endstop stop now properly decelerates the movement.
This is one important step towards handling accidental endstop hits
gracefully, as it avoids step losses in such situations.
dda.c: fix ACCELERATION_RAMPING #ifdefs.
ACCELERATION_SPLIT: get started!
ACCELERATION_SPLIT: make sure the queue has always enough free slots.
ACCELERATION_SPLIT: for a start, add the most simple case.

This matches ACCELERATION_RAMPING and works?