cura: properly working dual extrusion plugin
No longer relies on custom gcode to function and is mostly safe for
human consumption.
* Injects M109 commands before unspooling a newly activated hotend to
ensure printing temperature is hit. This will occur over the priming
tower if it is enabled and eliminates oozing over the print.
* Unconditionally cools inactive hotend even if the estimated layer
time is less than the preheat time. The hotend instead reheats once
the active hotend is up to temperature, preventing some ooze and
potential heat creep at the expense of some print time.
* The extruder can be raised by a configurable amount while waiting for
the active extruder to fully reheat after tool change.