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.
layout: Employ a persistent list data structure to avoid copying floats
all the time.

Improves performance on the maze solver significantly since this was
basically O(n^2) before.
auto merge of #3830 : pcwalton/servo/persistent-list-floats, r=kmcallister

r? @kmcallister
auto merge of #3860 : pcwalton/servo/reflow-out-of-flow, r=glennw

This is the last PR and most of the work for the maze solver and RoboHornet. 

r? @glennw 
cc @cgaebel
Invert control flow, fix resizing, and improve checkerboarding
significantly by giving tiles some time to paint before we render
unrendered content.