Introduce ATOMIC_START and ATOMIC_END.

As a sample application, use it in queue_empty().

There's also ATOMIC_BLOCK() coming with avr-libc, but this requires
a C99 compiler while Arduino IDE insists on running avr-gcc in C89 mode.
Apply ATOMIC macros in a number of other obvious places.
dda_queue.c: Simplify queue_flush().

No ATOMIC wrapping required and setTimer(0) actually restarts the timer,
which isn't what we want here.
dda_lookahead.c: use the new ATOMIC macros here as well.