Fix compilation with HEATER_SANITY_CHECK defined.

The issue was introduced together with temperature sensor type
TT_NONE, in commit f9a4495aa11940f86d54883a0784a4c388c2c791.
sersendf.c: simplify code and save 4 bytes of RAM.

The previous code was actually misbehaving and sent this string:

  TYPE:Mendel EXTRUDER_COUNT:%d TEMP_SENSOR_COUNT:%d HEATER_COUNT:%d

(part of a string in gcode_process.c) instead of "0x". Ouch! Memory
landscape messed up?
Makefile: add instruction on how to get rid of an error message.
gcode_process.c: remove more redundant code.

Saves yet another 122 bytes.
Review power supply timeout.

- Move the variable from dda.c to pinio.c.

- Reset the timeout on each power on, to guarantee a minimum PSU on time.
Introduce an integer multiply-divide algorithm.

We have multiplies followed by divides all over the place and
most of them are difficult to handle regarding overflows. This
new algorithm handles this fine in all cases, as long as all
three operators and the overall result fits into 32 bits.
Make muldiv() multiplicand signed.

As Andrey correctly pointed out, we need this signed. See:
http://forums.reprap.org/read.php?147,89710,130225#msg-130225
and following posts.
Makefile: clarify definition of the firmware upload device in use.

Programmers typically don't do baud rate, so setting the avrdude -b
flag has to be avoided in this case.
Makefile: don't provide means for programming fuses.

Programming fuses doesn't belong to the firmware or to firmware
uploading. Fuses have to match the hardware and the bootloader,
so they should be set when setting up these.
config.h templates: Sanguinololu 1.2 requires inverted enable pins.

Found by nickoe on IRC, thanks.
Use the new muldiv() to replace um_to_steps..().

This gets rid of overflows at micrometer to step conversion as
much as possible within 31 bits. It also opens the door to get
STEPS_PER_M configurable at runtime.

This also costs 290 bytes, unfortunately.
Introduce muldivQR().

This is a version of muldiv() with qn and rn precalculated,
so it can be avoided to re-calclulate it on every instance.

Yet another 116 bytes, unfortunately.
dda_maths.h: make um_to_steps_{xyze}() inline functions.

Size and speed is the same as with #defines, but now there is
type checking.
Make muldiv() inline instead of a #define, too.
Move utility functions from dda.c to dda_math.c.

Simple cleanup, no functional change.
dda.c: remove two, now obsolete warnings.
dda: Fix signed-ness mismatch in handling of dda->e_delta
Makefile: change wording regarding a newer config.default.h again.

Hope it's clear now :-)
gcode_process.c: test seen_P before using P, same for seen_S / S.

There were a whole bunch of cases where P and/or S were used without
checking for the validity of the value. This led to all sorts of
confusion, for obvious reasons.
temp.c: remove a redundant variable.

This doesn't save a single byte in binary size, as the optimizer
catches this anyways.