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

r? @glennw @mbrubeck
How would we drive it from vsync in OpenGL? The message is sent immediately after `glfwSwapBuffers()` returns.