Rework GCoder to make it stateful in any case as per #443
Add argument to gcoder.GCode.append to opt out storing
Factorize gviz init by calling clear()
Cleanup gcoder

This construct "current_x = x or current_x" was not correctly handling
cases where x could be 0 and current_x None, and current_x still be None
after the statement while it should have been 0.
Change the meaning of gcoder.Line.extruding to "is positively extruding"
Cleanup gcoder.Gcode._preprocess_layers
Fix handling of sequential object plates in 2D viewer
Store current_e in gcoder.GCode
Only do the processing if there's data to process in GCoder
Use stateful parser for GCodes in 2D viewer as per #443