Last minute pre 6 AM changes, nothing interesting
ClearListener now does its job - fixed pesty bugs

fixed a bug in Canvas by removing the MouseListener instead of adding it
twice...shanda!

Added a preview boolean, set in mousePressed and mouseReleased
supermethods in DrawShapeListener. Boolean is checked each time
drawPreview is called

resetBounds is called in DrawShapeListener mousePressed. Previously
mousePressed was called and preview was set to true, meaning that
drawPreview was called on canvas.repaint() and the previous x, y, w,h of
the specific implementation of that drawShapeListener was called and
painted