gcode exporter, mesh, meshShift method, chop method

gcode exporter works for exporting dry run code, but the E coordinate is
completely placeholder right now. Will rework with input as a list of
XYZE coords so that E can be handled in a separate function. Supports
start.gcode and end.gcode.

Mesh is a tidied up version of mesh in the first attempt.

meshShift applies triShift to every tri in a mesh and returns a new mesh
composed of the shifted tris.

chop method on mesh provides the flat regions which need populating with
paths.