Refactor requestAnimationFrame and blocking code.
Factor out requestAnimationFrame logic into window.SwapBuffers().

Start using FramebufferSizeCallback in desktop.go.
Other minor ways of unifying the code bases; they're very similar now!