Add LinearGradientBrush implementation

- Add support for LinearGradientBrush.
- Fix problems with Matrix specifically with the Matrix Matrix (RectangleF rect, PointF[] plgpts) and Matrix (Rectangle rect, Point[] plgpts) constructors.
- Add new GeomUtilities to Utilities folder
- Fix some of the Graphics methods to add shapes to path so they can be filled with a gradient.
- Add LinearGradientBrushTest to test functionality only for Mac.