Add support for trait-based virtual methods on Nodes, and use it for before_remove_attr and after_set_attr.
Integrate Element's after_set/remove behaviour into the virtual method hierarchy.
Add overridable tree binding/unbinding behaviour.
Remove the IElement trait.