remove bindings codegen h/cpp files from .gitignore

These files don't exist in the tree, and the codegen doesn't create
them, so we shouldn't have them sitting around in .gitignore.
Fixed #4170 - Incremental reflow wasn't being aggressive enough when nodes get reparented.

When inserting a node that was already dirtied, the dirtying logic
would short circuit: "This node is already dirty? Great! Then its
parents must be HAS_DIRTY_DESCENDANTS, too! Let's skip that step."

This isn't appropriate when nodes move around the tree. In that case,
the node may be marked HAS_CHANGED, but ancestors may not yet have
the HAS_DIRTY_DESCENDANTS flag set.

This patch adds a `content_and_heritage_changed` hook in the document,
to deal with these cases appropriately.
Cleanup Document::GetDoctype.
Cleanup Document::GetDocumentElement.
Cleanup Document::SetBody.
Cleanup Document::GetElementsByName.
Implement MutNullableJS::or_init.

This will make it easier to implement lazy getters.
Use MutNullableJS::or_init in Document.
Use MutNullableJS::or_init in Window.
auto merge of #4219 : Ms2ger/servo/cleanup-document, r=jdm
convert net crate to use hyper
convert msg crate to use hyper
convert script crate to use hyper
adjust WPT since hyper fixed some
PEP8 line length fixes in testing_commands.py

...so that PyLint stops yelling at me
Adds a --component (or -c) argument to test-unit

Example usage:

`./mach test-unit -c style`
Last second bug catch
Mach test inference fix
devtools: handle script task panics gracefully in ConsoleActor.
auto merge of #4220 : eddyb/servo/devtools-panic, r=jdm

r? @jdm