Use Shape class in place of Box in the engine.

Change ColorBoxesEngine to use the Shape base class instead of
referring directly to the Box class.
Added creation of additional polygons.

Now triangles up to octagons can be created in addition to boxes.
Added a Polygon class to handle this. Added a key binding to change
the current shape.
Added circle objects.

Can now create circle objects.