script: Use a 16-element `SmallVec` for the root collection.

In my tests the size of the root collection never exceeded 7, so 16
seems like a nice conservative number.
script: Avoid a temporary when constructing `<td>` and `<tr>` elements.

Was a huge improvement to RoboHornet.
script: Use `String::new()` instead of the formatting infrastructure
when constructing DOM unique IDs.

This was showing up in the RoboHornet profile.
script: Don't dirty nodes that are already dirty.
script: Don't create a temporary vector on the heap when inserting
non-fragment nodes.
script: Use an FNV hash to hash event listeners.

The security properties of SipHash are irrelevant for event listeners
and the creation of the random number generator was showing up high in
the profiles.
layout: Support more types of selectors for style sharing.

This helps avoid problems with style sharing in common cases, often
caused by the user agent stylesheet.
Format Element#tagName correctly when there's a prefix.

format!("{}", atom) yields strings like "Atom('span' type=Inline)", which is
not intended here.
Move build_element_from_tag out of the HTML parser.

This function is not particular to the parser, so should live in the DOM.
auto merge of #3853 : Ms2ger/servo/create, r=Manishearth

This function is not particular to the parser, so should live in the DOM.
auto merge of #3856 : Ms2ger/servo/tagname, r=Manishearth

format!("{}", atom) yields strings like "Atom('span' type=Inline)", which is
not intended here.
Cleanup Element's AttributeHandlers

Remove notify_attribute_{changed,removed} in favor of a unified
notify_content_changed.
auto merge of #3859 : brunoabinader/servo/element-notify-content-changed, r=Ms2ger

Remove ```notify_attribute_{changed,removed}``` in favor of a unified ```notify_content_changed```. In the future, whether we decide to specialize ```document.content_changed()```, it'll be just a matter of adding a param.
Update azure. This removes the final rust-opengles dependency.
auto merge of #3861 : glennw/servo/update-azure, r=metajack
auto merge of #3838 : pcwalton/servo/style-sharing-enhancements, r=SimonSapin

This helps avoid problems with style sharing in common cases, often
caused by the user agent stylesheet.

r? @SimonSapin
Remove suggestion to use #[must_root] for functions
Cleanup the implementation of HTMLTableElement::GetCaption.
s/AbstractNodeChildrenIterator/NodeChildrenIterator/
ChildElementIterator is now peekable