Revert "Remove extra setEvent when calling createEvent in setNode".

This reverts commit 05c3c20dee9d8195e068373bedf596c311cf5c7b.

`createEvent` doesn't have a parameter to accept listener functions, so
the `setEvent` is needed here for the listeners to actually
replicate-in.
`setNode` `setEvent` comment.
Keep the `flushingEventListeners` loop as an `Array` iterator.

Listener IDs aren't necessarily small numbers, so iterating from [ 0,
length ) each time isn't ideal. In active applications, IDs will grow
over time as more listeners (and children) are added.

`Array.forEach` will only visit the elements that exist and have not been
deleted.

The listener list should probably be converted to an object keyed by
listener ID at some point--as long as it can retain the insertion order.
But a sparse `Array` is equivalent when used with numeric keys, so
there's no hurry.