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:

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: 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].