Add MutationObserver

MDN: https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver
W3C: http://www.w3.org/TR/dom/#interface-mutationobserver

Looks like MutationObserver is an experimental API ([from the list](https://developer.mozilla.org/en-US/docs/Web/API)), but it seem to be supported by all modern browsers, and other experimental APIs like [AnimationEvent](https://github.com/scala-js/scala-js-dom/blob/master/src/main/scala/org/scalajs/dom/lib.scala#L6281), [DOMParser](https://github.com/scala-js/scala-js-dom/blob/master/src/main/scala/org/scalajs/dom/lib.scala#L5278) are already in scala-js-dom.

@sjrd is there a canonical way of instantiating these options objects and passing them around? I'm not sure how this would even work passing in structured data.