Specialize Document::content_changed

Changes:
- ```Attr```'s getters/setters moved to ```AttrHelpers``` trait;
- Cleanup in ```VirtualMethods```' ```before_remove_attr```, ```after_set_attr``` to use ```&JSRef<'a, Attr>```;
- Specialize Document::content_changed;
- Move Document-specific logic from Element::notify_attribute_change to Document::content_changed;