dda.c: don't set timer twice when going from one move to the next.

This is a bug which existed, well, basically forever. Nobody noticed
until precision timings could be recorded with SimulAVR.
Add testcase for nullmoves.

Moves which have no movement intention, e.g. pure feedrate changes,
and moves too small to cause a single step, are a bit tricky to
handle with lookahead. Essentially, they should be joined with the
next movement, without queueing them up.
Testcases review:

- comment on why the case exists,

- add an M2 at the end to later allow automatic simulation stop,

- move comments to the end to avoid filling the serial buffer with
  this not movement related stuff,

- make sure there's a line ending at the end of the file and

- use Windows line endings (they're more difficult to handle).