Implement Document::doctype

Closes #1482.
auto merge of #1483 : brunoabinader/servo/document-doctype, r=jdm

Closes #1482.
NVidia submodule updates
auto merge of #1487 : larsbergstrom/servo/NVIDIA_fixes, r=metajack

Fixes #1185 and #668.

r? @metajack
layout: GC unused flow types
layout: Rename `FlowData` to `BaseFlow` to match other types
auto merge of #1310 : pcwalton/servo/refactor, r=pcwalton

Here are some refactorings. They depend on #1309, so need to wait for r+ on that first.

r? @metajack
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