Add callback as second argument to #tick

If no callback, run timeout/interval function sync.  If callback is
present, run async.
Add some location properties
Add navigator
Add screen
Add Node #setAttribute and #getAttribute
Add document #body spec
Add document #head
Add getBoundingClientRect to node
Add node #ownerDocument
Add node #parentNode
Add document #defaultView and #parentWindow
Add document #documentElement
Add document #domain
Add document #getElementsByTagName
Add window #setImmediate
Split node into node and element

And make window an element, not a node.
Node #getBoundingClientRect is a function
Duplicate definition of arguments
Move some code from element to node constructor
Refactor definitions of lazy attributes