Remove some trailing whitespace.
Comment out parsing of ::firt-line and ::first-letter, they’re not supported yet.
Make SelectorMap private.
Remove unused PerOriginRules struct.
Move selector matching tests and testing helpers into a #[cfg(test)] module.
Selector mathing: Move the pseudo-elements buckets inside Stylist.

Refactor to have only one Stylist per document.
Simplify tracking of CSS rules source order in selector matching.
Store selectors in Arc early to avoid some copying.
De-duplicate some redundant code with a macro.
auto merge of #1470 : SimonSapin/servo/before-after, r=metajack

No behavior change (hopefully).

a16087d is the core of what I wanted to do, following up on #1464 (cc: @parkjaeman)
Implement Node::replaceChild()

Implements Node:replaceChild() according to spec below:
http://dom.spec.whatwg.org/#concept-node-replace

This patch is for:
https://github.com/mozilla/servo/issues/1430