Added functionality to draw circles and abstract shapes.

Created abstract class shape, and extended classes Circle and AbstractShape from it.
In main canvas, added listeners for mousePressed, mouseDragged and mouseReleased.
In mousePressed, a temporary array of points is created, called shapePoints.  In mouseDragged
the cursor position is updated and a new point is created at the mouse location and added to
shapePoints.  On mouseReleased a new abstract shape is created made up of the points in shapePoints.
The new AbstractShape is added to the list of shapes.

In the draw method for AbstractShape, the points that make up the shape are iterated through,
drawing a line between each consecutive pair to form a continuous shape.