Planning performance improvements at some expense of RAM.
Don't go recalculating the plan every time a new segment is added.
Instead, delay planning until we have LookaheadCommitCount new segments,
then calculate the plan and shift out LookaheadCommitCount segments
from the front of the buffer.

A side effect of such implementation is that the "lookahead count",
that is, how many moves after a given move are taken into account,
is not the same for all segments. It can be anywhere from
LookaheadBuffeSize-1 (segment at the front buffer) down to
LookaheadBuffeSize-LookaheadCommitCount (last
segment of a group shifted out). This means that, considering that
the value of LookaheadCommitCount=1 is equivalent to the old behavior,
if you increase this by N, you should also increase the
LookaheadBuffeSize by N to keep the same worst case lookahead count.

Currently we only enable this on Due not on AVR, because AVR is tight
with RAM. More testing/optimization is needed before this is default on
AVR.