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.
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
s/AbstractNodeChildrenIterator/NodeChildrenIterator/
ChildElementIterator is now peekable
s/peek().is_some()/!is_empty()/
auto merge of #3864 : brunoabinader/servo/node-peekable-childelement, r=Ms2ger

This change avoid using ```child_elements().count() > 0``` approach (using ```child_elements().peek().is_some()``` instead).
util: Add a `Show` implementation to `SmallVec`
gfx: Enhance display list debugging a bit with support for dumping
stacking levels, etc.
auto merge of #3833 : pcwalton/servo/display-list-debugging, r=mrobinson

r? @mrobinson
auto merge of #3834 : pcwalton/servo/smallvec-debugging, r=pcwalton

r? @cgaebel
layout: Make absolute position calculation idempotent.

This will be necessary for incremental reflow of absolutely-positioned
flows.
test: Mark the inline element in `inline_hypothetical_box_a.html` as
`vertical-align: top`.

We actually don't support the other values correctly, and so this test
was relying on a bug in incremental reflow.
layout: Make incremental reflow more fine-grained by introducing "reflow
out-of-flow" and "reconstruct flow" damage bits.

This is needed for good performance on the maze solver.
util: Add persistent lists as a useful general-purpose thread-safe data
structure.

This will be used to improve our storage management for float lists.