Allow individual layers to render their own background color

Instead of relying on a scene-wide background color, all layers can now
have their own background color.
Implement media queries parser and matching. Improves mobile first sites like bootstrap3.
Removes duplicate CSS selector matching logic.

Now that DOM/Flow traversals have been refactored out, the `recalc_style_for_subtree`
function in `css/matching.rs` can be removed, in lieu of just running the standard
`recalc_style_for_node` and `construct_flows` traversals sequentially. Now we
no longer have the maintenance headache of duplicating selector matching logic
in two places! \o/

r? @pcwalton
Uncomments the multiple css class ref-test

This test had been commented out because it was breaking the travis ci
build but was passing locally.

Issue #3681
auto merge of #3610 : glennw/servo/media-queries, r=SimonSapin
auto merge of #3668 : cgaebel/servo/sequential-reflow, r=pcwalton

Now that DOM/Flow traversals have been refactored out, the `recalc_style_for_subtree`
function in `css/matching.rs` can be removed, in lieu of just running the standard
`recalc_style_for_node` and `construct_flows` traversals sequentially. Now we
no longer have the maintenance headache of duplicating selector matching logic
in two places! \o/

This passes reftests with both default arguments, and with `-y 1`.

r? @pcwalton
Add a to_js method to the casting trait code in CodegenRust.py
Replace the manual checks and calls to transmute_copy in /layout/wrapper.rs with calls to to_js

Fixes #3616
auto merge of #3672 : mrobinson/servo/background-color, r=zwarich

Instead of relying on a scene-wide background color, all layers can now
have their own background color.
auto merge of #3655 : kaseyc/servo/add_to_js_method, r=jdm

Replace the manual checks and calls to transmute_copy in /layout/wrapper.rs with calls to to_js/

Fixes #3616
Update rust-http to pick up latest additions.
auto merge of #3680 : jdm/servo/updatehttp, r=jdm,metajack

Needed for #3596.
Add DOMRefCell<T> for safe borrowing in layout.

This type simply wraps `RefCell<T>` to add the special method,
and introduce the method to return the pointer of the value contained in
itself, for used in layout task.
Use DOMRefCell<T> in Attr.
Use DOMRefCell<T> in Element.
Use DOMRefCell<T> in CharacterData.
auto merge of #3574 : saneyuki/servo/cell, r=jdm

#3050
auto merge of #3682 : gilles-leblanc/servo/issue-3681, r=jdm

This test had been commented out because it was breaking the travis ci
build but was passing locally.

Issue #3681
Remove the reflector field from Document.

This field became unused in commit 99a36cbeb6077976861d94b7af16e9e57994a14d.
auto merge of #3685 : Ms2ger/servo/doc-reflector, r=jdm

This field became unused in commit 99a36cbeb6077976861d94b7af16e9e57994a14d.
embedding: implement cef_string_utf16_cmp()