dom-observer: do not observe attributes change
allow passing custom observer
improve react example