Implement automatic extruder/cold-end fan control based on temperature

This change allows fan outputs to automatically turn on/off when the
associated nozzle temperature of an extruder is above/below a threshold
temperature.
Multiple extruders can be assigned to the same pin in which case the fan
will turn on when any selected extruder is above the threshold.
It also makes the M42 command compatible with the M106/M107 command.
The majority of the logic in this change will be evaluated by the
compiler at build time (i.e, low code space requirements).
Further reduce code by using precompiler logic
Number of extruders is not an advanced configuration - it is a basic property.
Merge remote-tracking branch 'upstream/Marlin_v1' into Marlin_v1
Rework change to incorporate CONTROLLERFAN

Also refactor extruder auto fan logic to simplify further and now only
check every 2.5 seconds
Remove unnecessary pin initialization in stepper.cpp

(duplicates initialization in Marlin_main.cpp)
Merge remote-tracking branch 'upstream/Marlin_v1' into Marlin_v1
Merge pull request #409 from buildrob202/Marlin_v1

Implement automatic cold-end/extruder motor fan control based on nozzle temperature