Added the AbstractBaseShapePainter class as a base class for all existing ShapePainter implementations.  Implemented a separation between the object (shape) space and the world space.
Implemented rudimentary shape selection (no UI feedback yet)
Selection works with drawing borders around rectangles, squares, ellipses, circles.
Implemented drawing of selected shapes with outline and resize handles.
Added painting of rotate handles.