Created a MutablePath class for feature #20

A MutablePath instance will directly modify itself on translate, scale, and rotate calls while the existing Path class returns a new object. This is essentially bad SE. In the future MutablePath should not include logic to modify the Point object directly. Probably need to create a MutablePoint class to be used with MutablePath, and the current Point class to be used with ImmutablePoint. Also once a MutablePath is modified via the methods it is important that the canvas renders the updates.