DDA: convert um_to_steps_* to generic implementation.

A generic implementation here will allow callers to pass the
target axis in as a parameter so the callers can also be made more
generic.

Traumflug notes:

Split out application of the new implementation in dda.c into its
own commit.

This saves just 8 bytes binary size so far, but more to come.

Interestingly, binary size is raised by 18 bytes if

  um_to_steps(int32_t, enum axis_e)

is changed to

  um_to_steps(enum axis_e, int32_t)

even on the 8-bit ATmega. While putting the axis number might be
a bit more logical (think of additional parameters, the axis
number position would move), NXP application note AN10963 states
on page 10ff, 16-bit data should be 16-bit aligned and 32-bit data
should be 32-bit aligned for best performance. Well, so let's do
it this way.
DDA: use new generic um_to_steps_* in dda_new_startpoint().

This was contributed by Phil Hord as part of another commit.
DDA: Move axis calculations into loops, part 1.

Clean up code to reduce duplication by consolidating code into
loops for per-axis actions.

Traumflug notes:

Split this once huge commit into smaller ones for ease of
reviewing and bisecting (in case something went wrong).

Part 1 is to put dda_create() distance calculations into loops.
This reduces binary size by a whopping 430 bytes already.
dda_maths.h: remove now obsolete um_to_steps_[xyze].
dda: Move axis calculations into loops.

Clean up code to reduce duplication by consolidating code into
loops for per-axis actions.
home: Reduce duplication with axis arrays
datalog: show traced data as signed ints, not unsigned
Rename confusing variable name

'all_time' sounds like forever to me, but this variable really
tracks the last time we hit one of "all the axes".  It sticks
out more now in looping, so rename it to make sense.
Trivial cleanups

Move some code around, fix some formatting, and hide a couple
of variables when they're not being used.
Notes.