Fix copyGraftElementWithProperties to be correct.
Make withProperties copier a parameter in GraftElement.
Properly implement change-tracking withProperties.
Carry already-dirty properties-attributes through copies.
Start tracking a DOM element associated with a GraftElement.
Rename references to DOM elements to be domElement.

This instead of just element, which is used to refer to graft
elements.
Rewrite straight htmlizer to preserve existing DOM elements.

If a given node is already associated with a DOM element,
then that element is updated with the graft element’s current
information; if not, then a new element is created.

Text nodes are currently still special-cased, though that’s
getting sillier and sillier.