Wait to dump flow tree until flow is complete

The flow tree is currently dumped for debugging purposes early on in
the flow process, so many values are still zero. If we wait to dump it
until later, the output will more accurately reflect the real flow tree.
auto merge of #3719 : mrobinson/servo/flow-dump, r=pcwalton

The flow tree is currently dumped for debugging purposes early on in
the flow process, so many values are still zero. If we wait to dump it
until later, the output will more accurately reflect the real flow tree.
Edits dom/bindings/DESIGN.md

This corrects and improves the dom/bindings/DESIGN.md document and also
corrects a grammatical error in a tests/reftest.rs message.
auto merge of #3720 : gilles-leblanc/servo/fix-grammatical-errors, r=jdm

This corrects and improves the dom/bindings/DESIGN.md document and also
corrects a grammatical error in a tests/reftest.rs message.
Don't crash on invalid utf-8 in the HTML parser.

This was regressed by the html5ever landing.
auto merge of #3712 : Ms2ger/servo/parser-crash, r=Manishearth

This was regressed by the html5ever landing.
Remove render backend option as it doesn't work and confuses people.
auto merge of #3711 : glennw/servo/cleanup-opts, r=pcwalton

r? @pcwalton @metajack
Use opts as a global, to avoid cloning and passing the struct all over the code.
auto merge of #3729 : glennw/servo/opts-cleanup, r=mbrubeck
Introduce a basic shared task pool, and use it for image decoding.
Fixes the table_percentage_width_a.html reftest with incremental reflow turned on.
Dump the flow tree with println, instead of error
auto merge of #3715 : cgaebel/servo/fix-table-percentage-width, r=pcwalton

This also enables incremental reflow by default. \o/

r? @pcwalton
Update rust-cssparser to revision required by cssom branch.
auto merge of #3745 : glennw/servo/update-cssparser, r=jdm

r? @jdm
Improve logical geometry formatting

Logical geometry is complicated, so the string formatted output is
verbose. This means that flow tree dumps often go well beyond the
edge of the terminal screen. With a simple notation, we can shorten the
output and make it slightly easier to read. This notation also makes it
more similar to the formatted output of Rect, Point2D, and Size2D.
gfx: Update rust-azure to pick up arcs, gradients, and subpixel text
Update rust-core-text, handle empty font collections. Fixes #3703.
layout: Rewrite text and inline fragment handling during flow
construction to avoid cloning and moving flows so much.

Besides amounting to a 5%-10% win on a page with a lot of text, this
simplifies and refactors the text layout code.