Improvements to Paint

branched Canvas and PaintListener into two classes, planning to include
other PaintListeners in the future,
added Random color generator, used BufferedImage class instead of Path2D
increasing efficiency