dda_create(): store prev_dda locally.

This obviously requires less place on the stack and accordingly a
few CPU cycles less, but more importantly, it lets decide
dda_start() whether a previous movement is to be taken into account
or not.

To make this decision more reliable, add a flag for movements done.
Else it could happen we'd try to join with a movement done long
before.
dda_queue.c: run every queued thing through dda_create().

This allows dda_create() to track things queued but not being a movement.
Important for lookahead.