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.
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.
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
added ErrorEvent WebIDL and errorevent.rs
Implement the HTMLScriptElement.src setter

Fixes #1113.
auto merge of #4227 : mbrubeck/servo/script-src, r=jdm

Fixes #1113.  r? @Ms2ger
Make tidy ingore new target dir
auto merge of #4238 : froydnj/servo/remove-cpp-files-from-gitignore, r=Manishearth

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.

There are h/cpp files sitting around in the bindings codegen directory; I suppose one could make the argument that they're useful for examples, so we should keep them around, too?
auto merge of #4240 : Manishearth/servo/tidy, r=SimonSapin
Set up openssl on Android