Added Geometry Batching

Previously each line of code was drawn as a separate object, and because
each object requires an independent rendering call, parts with greater
than 50,000 lines would crash the application.  Geometry batching
combines all geometries with the same material into the same mesh
object, thereby requiring significantly fewer renders.
Made layers stored, not calculated

Previously each time a request for a specific lines "layer" or the total
number of layers was made the values had to be calculated by processing
through all of the G-codes.  Now the layer is calculated during the
initial loading of all of the codes and stored as a property of that
line.  Total layers is a property of GCodes.