Add GMatrix, a 2D transformation matrix stack layer

Here's a commit that adds a GMatrix class that provides a 2D transformation matrix stack.

I've been working on generating gcode to create half blind dovetails, and being able to simply rotate the transformation matrix by 90 is much easier than having to track which direction to do moves and meanders in.
It is a property so it can be overridden in Gmatrix to return coordinates in the transformed space, rather than in the initial coordinate system. 





> On Nov 3, 2014, at 19:07, Jack Minardi <notifications@github.com> wrote:
> 
> In mecode/main.py:
> 
> > @@ -149,6 +149,10 @@ def __init__(self, outfile=None, print_lines=True, header=None, footer=None,
> >  
> >          self.setup()
> >  
> > +    @property
> What was the rationale behind making this a property?
> 
> —
> Reply to this email directly or view it on GitHub.