CoreXY, dda.c: start by making steps an array.

Goal is to calculate steps in a separate function to allow different
methods of steps calculation, which is neccessary for supporting
different kinematics types. Accordingly we have to calculate steps
for all axes before setting directions and such stuff.
CoreXY, dda.c: separate bot axes from extruder axes.
CoreXY, dda.c: calculate delta steps separately.

This will allow us to use it's sign to set direction.

No binary size increase, optimizer can handle this.
CoreXY, dda.c: use our now signed delta_steps to set direction.

This nicely makes the binary 36 bytes smaller.
CoreXY, dda.c: use signed delta_steps to simplify dda->delta_um[] calc.

Saves another 8 bytes binary size.
CoreXY: separate out bot axes distance calculations.

This also introduces dda_kinematics.c/.h and a KINEMATICS definition,
which allows to do different distance calculations depending on the
bot kinematics in use. So far only KINEMATICS_STRAIGHT, which matches
what we had before, but other kinematics types are present in
comments already.
CoreXY: distribute new KINEMATICS definition to all config.h templates.
CoreXY, dda_kinematics.c/.h: introduce KINEMATICS_COREXY.

Implementation isn't that difficult, should be complete and working
fine already.
CoreXY: tell config.h templates about KINEMATICS_COREXY.
dda.c: abs32() is obsolete now.

It's obsolete, because it's used for signed ints, only.