Implement more NodeList methods

We do not support live NodeLists. All node lists are snap shots at the time of
the method call (or getter invokation for childNodes).
Implement custom event dispatching that walks the adjusted ancestor tree.

This works by listening to the underlying event using capturing. When the event
occurs we gather the adjusted ancestors and manually dispatch along that path.

This does not yet handle stopPropagation nor stopImmediatePropagation.
Merge pull request #36 from arv/dumb-node-lists

Implement more NodeList methods
Merge pull request #37 from arv/dispatch-event-retarget

Implement custom event dispatching that walks the adjusted ancestor tree