Initial commit.

Everything here should work in close to latest versions of Webkit/Blink
(though there still may be some issues with the requestAnimationFrame
polyfill’s timestamps). Some more features need to be added, and then
everything tested and documented.