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.
What was the rationale behind making this a property?