Multi extruder support for GCODE viewer

Filament usage calculation per layer is still buggy though
Refining temperature control REST API, also added support for multi extrusion while at it
Added pusher.color.js
Lots of changes:

- GCODE viewer now supports multiple extruders and configurable bed sizes
- GCODE viewer also now based on callbacks and config injection instead of dependence on elements in the embedding website
- Switched GCODE viewer to bootstrap-slider for the layer/command sliders, patched bootstrap-slider a bit up (TODO: PR to upstream)
- GCODE interpreter in backend also calculates filament usage for all extruders
- More consequent use of LESS, switched bootstrap to LESS source to have access to variables and mixins, introduced config setting to switch between usage of compiled CSS (checked in as well) or LESS, defaults to CSS
Made zooming on model work too
Some small fixes.
Refetch file list when deleting a file

See #338
More work on the GCode viewer

- confirmation dialog when trying to visualize large files (different threshold for mobile and "regular" devices, configurable of course, although only via config file right now) - should also help a bit with issues leading to #215
 - proper clearing of the viewer area when reconnecting to the backend (e.g. after server restart)

 Also all of this plus previous commits closes #35
Forgot a file... again
Set all heaters to off upon cancel of print job
Don't disable gcode viewer upon reset of connection
Make sure we always have color to draw lines with
If no tool offset is defined for the current extruder, just assume 0 instead of dying

Hopefully this fixes #339
A bit more error resilience for handling data received from the backend

See #339
Don't prefix tool number for temperature command when only one extruder is present

Temporary workaround for #341
Changed payload format of error event
Do not reset extrusion amount in UI

Fixes #340
Also recognize --iknowwhatimdoing when running as daemon

Fixes #337
Added time needed for printing file to PrintDone event's payload

Fixes #333
TransferDone and SlicingDone events should also carry the seconds of elapsed time as a float instead of a (rounded) string