Implement innerHTML getter for HTML documents

XML case is not yet implemented.
auto merge of #1450 : jgraham/servo/innerHTML, r=jdm

XML case is not yet implemented.

Not yet well tested, but at a point where review comments are helpful.
Add DOMImplementation skeleton

Creates a DOMImplementation struct corresponding to DOMImplementation
WebIDL. Also implements a getter for Document::implementation.

Closes #1486.
auto merge of #1488 : brunoabinader/servo/document-implementation, r=Ms2ger

Creates a DOMImplementation struct corresponding to DOMImplementation
WebIDL. Also implements a getter for Document::implementation.

Closes #1486.
script: Stop trusting pointers to DOM nodes that layout provides.

Pointers to DOM nodes from layout could go stale if incremental reflow
does not correctly destroy dead nodes. Therefore, we ask the JavaScript
garbage collector to verify that each DOM node is indeed a valid pointer
before calling event handlers on it, and fail otherwise.
auto merge of #1490 : pcwalton/servo/distrust-layout-new, r=jdm

Pointers to DOM nodes from layout could go stale if incremental reflow
does not correctly destroy dead nodes. Therefore, we ask the JavaScript
garbage collector to verify that each DOM node is indeed a valid pointer
before calling event handlers on it, and fail otherwise.

Depends on the `get-addressable-gc-thing` branches of `mozjs` and `rust-mozjs`.

r? @jdm