Invert control flow, fix resizing, improve checkerboarding significantly, and add a refresh driver

r? @glennw @mbrubeck
I'm probably missing something completely obvious, but I'm not sure why the compositor can't just run at 60 fps (locked to vsync), like a game style render loop - what is the reason for having the refresh driver being a separate task?