MinMax.h: add absolute()
FixedPoint: FixedMin of a signed and unsigned type is an unsigned type, not a signed type
SoftPwm: micro-optimization
mul_24_16_r16, mul_32_16_r16: don't waste a register
Implement custom bit shifts. It turns out we don't need them right now, but it will be needed
eventually.
FixedPoint: add importDoubleSaturatedInline to force gcc to do constant folding
Optimize the heater ISRs using fixed point arithmetic and custom assembly.