Implementation of FW extruder change retract

FW retraction is extended onto swap retraction invoked by 'G10 S1'.
Bookkeeping of the retract state of all extruders allows for having one
extruder fw standard retracted while another extruder is swap retracted.
An LCD menu item for the swap retract and recover length was added.
Fixed stop print LCD function on M104
Inverted state logic for forced_heating_stop variable
Changed the type of variable to bool, the name to "cancel_heatup", flags implementation and added this fix to M190 gcode too.
Merge pull request #965 from bq/forced_heating_stop

Fixed stop print LCD function on M104
Add "Thermal Runaway Protection" feature

This is a feature to protect your printer from burn up in flames if it
has a thermistor coming off place (this happened to a friend of mine
recently and motivated me writing this feature).

The issue: If a thermistor come off, it will read a lower temperature
than actual. The system will turn the heater on forever, burning up the
filament and anything
else around.

After the temperature reaches the target for the first time, this
feature will start measuring for how long the current temperature stays
below the target minus _HYSTERESIS (set_temperature -
THERMAL_RUNAWAY_PROTECTION_HYSTERESIS).

If it stays longer than _PERIOD, it means the thermistor temperature
cannot catch up with the target, so something *may be* wrong. Then, to
be on the safe side, the system will he halt.

Bear in mind the count down will just start AFTER the first time the
thermistor temperature is over the target, so you will have no problem
if your extruder heater takes 2 minutes to hit the target on heating.
Changed the declaration of the variable to Marlin_main.cpp to fix issue on commit #965
Merge pull request #989 from bq/cancel_heatup

Changed the declaration of the variable "cancel_heatup" to Marlin_main.cpp to fix issue on commit #965
Fixed stop print LCD function on M104
Inverted state logic for forced_heating_stop variable
Changed the type of variable to bool, the name to "cancel_heatup", flags implementation and added this fix to M190 gcode too.
Add "Thermal Runaway Protection" feature

This is a feature to protect your printer from burn up in flames if it
has a thermistor coming off place (this happened to a friend of mine
recently and motivated me writing this feature).

The issue: If a thermistor come off, it will read a lower temperature
than actual. The system will turn the heater on forever, burning up the
filament and anything
else around.

After the temperature reaches the target for the first time, this
feature will start measuring for how long the current temperature stays
below the target minus _HYSTERESIS (set_temperature -
THERMAL_RUNAWAY_PROTECTION_HYSTERESIS).

If it stays longer than _PERIOD, it means the thermistor temperature
cannot catch up with the target, so something *may be* wrong. Then, to
be on the safe side, the system will he halt.

Bear in mind the count down will just start AFTER the first time the
thermistor temperature is over the target, so you will have no problem
if your extruder heater takes 2 minutes to hit the target on heating.
Changed the declaration of the variable to Marlin_main.cpp to fix issue on commit #965
Merge pull request #948 from Dim3nsioneer/Marlin_v1

Implementation of FW extruder change retract
Merge remote-tracking branch 'upstream/Marlin_v1' into Marlin_v1
imported last Marlin changes