Basic working RAF implementation, needs polyfill.