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
Change to LCD status indicators

The I2C LCD status indicators now indicate when the hotends or bed are
turned on at all (rather than just when they are in their heating phase)
Merge pull request #407 from buildrob101/Marlin_v1

Combine and converge other I2C LCD branches (PANELOLU2, VIKI & PCF8575)
Added #ifdef NUM_SERVOS to servo.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
Merge branch 'Marlin_v1' into i2c_lcd

Conflicts:
	Marlin/Marlin_main.cpp
	Marlin/pins.h
	Marlin/ultralcd.cpp
	Marlin/ultralcd.h
Resolve all differences with Marili_v1
Merge branch 'i2c_lcd' into mendel90

Conflicts:
	Marlin/Configuration.h
	Marlin/Configuration_adv.h