Update Element.prototype.mutation

- update mutation helper
- add tests.js
- update browser compatibility, cleanup