Refactor to use pub / sub. Add editor config.
Completely refactor internals. No API changes other than how attribute callbacks receive their arguments and are bound.
Get tests passing for both observers and events.
Make watcher api better for public usage.
Revert "Make watcher api better for public usage."

This reverts commit 160e66351bf68076070ad253b7e70c3af7ff6cd5.
Simplify code. Polyfill MutaionObserver and use only that. No more fluff and nonsense.
Normalise Mutation Observer and Mutation Event behaviour in how events are triggered off of targets.
Ensure remove callbacks are triggered for all removed elements not just the top level node.