Reworking of pictureBox Paint event so it is using double-buffering correctly without background-erase issue