Add support for redraw:start/redraw:end
Reimplemented WindowWidget to paint to QImage

- WindowWidget now paints to a QImage instead of
  painting into the widget - this increases painting
  performance significantly