Make Element.set_attr require an AbstractNode so we can always downcast.

r? @metajack