use size hints
util: Add a method to push all elements from another doubly-linked list
without any moves.

This is tracked upstream as Rust bug #18402.
gfx: Inline a few commonly-used methods that were showing up in profiles
auto merge of #3826 : cgaebel/servo/fix-resize, r=pcwalton

Currently, both restyle/flow construction _and_ reflow are skipped
during resize. Reflow should not be in that list. This patch fixes
that.
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.
auto merge of #3823 : glennw/servo/default-opts, r=mbrubeck

This is required for unit tests like the image cache task, which can pass through code paths that query the command line options.
layout: Make some formatting cleanups.

These should have no effect on functionality.
fix the build
auto merge of #3828 : cgaebel/servo/layout-node-dumping, r=pcwalton

r? @pcwalton
auto merge of #3831 : pcwalton/servo/append-from, r=mbrubeck

This is tracked upstream as Rust bug #18402.

r? @mbrubeck
auto merge of #3832 : pcwalton/servo/display-list-inline, r=mrobinson

r? @mrobinson (or whoever)
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.
layout: Use the new `append_from` method to get rid of a bunch of moves
in display list construction.

These were showing up in the profile.
Add task profiler, which works by instrumenting each task runtime when enabled.
auto merge of #3708 : glennw/servo/thread_profiler, r=pcwalton

@pcwalton - I'm not sure if there's any gotchas or downsides to profiling using this technique to instrument the runtime. Happy to close this if it doesn't seem like a good idea to you. r?