Fix updating of attributes in incremental htmlizer.

We weren’t looking up the value of the dirty attribute at all,
leading to some undefined behavior.
Record root elements that get htmlized.

These are useful for knowing what to rerender when a
rerender is scheduled.
Add rerendering pipeline, attached to the element-changed event.

The element-changed event is subscribed to using jquery,
and it’s expected to have a before and an after property with
the GraftElement instance from before the change and the
one after the change.

Rerender requests update the htmlized roots so that when
the rerender actually runs, it is htmlizing the correct roots.

Rerenders are scheduled using requestAnimationFrame,
which degrades to a setTimeout when the standard requestAnimationFrame
is not available.
Add quick graft.event implementation.
Dispatch element-changed event when ChangeTrackingGraftElement is copied.