pixelcanvas paints differences and groups by color

Massive performance increase from redraw entire canvas by location,
which was the simplified previous strategy