Implement MutationObserver from scratch

This is an implementation of the MutationObserver without relying on
native MutationEvents nor native MutationObserver.