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.
initial implement for inline background
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
Implement DOMImplementation::createDocumentType

Implementation according to spec:
http://dom.spec.whatwg.org/#dom-domimplementation-createdocumenttype

Closes #1489.
auto merge of #1497 : brunoabinader/servo/domimpl-create-document-type, r=Ms2ger

Implementation according to spec:
http://dom.spec.whatwg.org/#dom-domimplementation-createdocumenttype

Closes #1489.
DocumentType does not need to know about quirks mode

TSIA. Closes #1498.
auto merge of #1499 : brunoabinader/servo/documenttype-remove-quirks, r=Ms2ger

TSIA. Closes #1498.
Add extra debugging information.
When `window.close()` is called, we should just ask the compositor to exit
normally.

The old code made the mistake of attempting to shutdown the associated
pipelines itself, which caused race conditions with the constellation and
compositor, as they expect to be able to drain their message queues
before exiting.
Changes the Constellation shutdown procedure to a message and response
from the Compositor instead of a message with an immediate callback.

The problem was that the old model introduced a potential deadlock. If
the Constellation had a pending RenderReadyMsg in its queue when the
ExitMsg arrived from the Compositor, the Compositor would exit its
message loop and wait for the response from the Constellation. But,
the Constellation would send a SetIds message to the Compositor, which
also required a response - resulting in deadlock.
Also handle the exit after load and output file cases for ref tests
Reorder changes in add_child to be correct.
auto merge of #1501 : Ms2ger/servo/add_child, r=jdm
Handle GLFW initialization failure

I hit this when trying to run servo in an ssh session. It hit an rtabort with
"fatal runtime error: thread-local pointer is null. bogus!" The exit is
required because at this point, the runtime is in a very weird state, and a
fail is going to explode even more violelently than the original unwrap did.
auto merge of #1502 : cmr/servo/handle_init_error, r=pcwalton

I hit this when trying to run servo in an ssh session. It hit an rtabort with
"fatal runtime error: thread-local pointer is null. bogus!" The exit is
required because at this point, the runtime is in a very weird state, and a
fail is going to explode even more violelently than the original unwrap did.
some refactor & add comment