Return real page titles and URLs for devtools tab choices.

Fixes #4167.
script_task, handle_msgs: sort for pattern constructor
script_trask, handle_msgs: factored out handle_msg_from_constellation
script_trask, handle_msgs: factored out handle_msg_from_script
script_trask, handle_msgs: factored out handle_msg_from_devtools
layout: Refactor inline layout a bit.
layout: Implement `text-indent` per CSS 2.1 § 16.1.

I had to use a somewhat unconventional method of computing text
indentation (propagating from blocks down to inlines) because of the way
containing blocks are handled in Servo.

(As a side note, neither Gecko nor WebKit correctly handles percentages
in `text-align`, at least incrementally -- i.e. when the percentages are
relative to the viewport and the viewport is resized.)
auto merge of #4328 : pcwalton/servo/text-indent, r=SimonSapin

I had to use a somewhat unconventional method of computing text
indentation (propagating from blocks down to inlines) because of the way
containing blocks are handled in Servo.

(As a side note, neither Gecko nor WebKit correctly handles percentages
in `text-align`, at least incrementally -- i.e. when the percentages are
relative to the viewport and the viewport is resized.)

r? @SimonSapin
auto merge of #4355 : servo/servo/devtools-title, r=metajack

Fixes #4167.
auto merge of #4356 : servo/servo/msgs, r=jdm
compositing: Translate clip rects into the coordinate systems of child
layers when doing hit tests.

Fixes clicking on links on the second page of Hacker News.
layout: Implement `word-spacing` per CSS 2.1 § 16.4.

This assumes that there are no ligatures that span across multiple
words. Since we have a per-word shape cache, this is a safe assumption
as of now. I have left comments to ensure that, if and when this is
revisted, we make sure to handle it properly.
auto merge of #4357 : pcwalton/servo/compositor-hit-test-clipping, r=mrobinson

Fixes clicking on links on the second page of Hacker News.

r? @mrobinson
Factor out part of the traversal routine in HTMLCollection.

I would move the filter() call into the traverse function as well, but the
callback can't outlive its stack frame.
Skip the root node in live HTMLCollections.

The root node is never included in the collection, and omitting it here
simplifies and speeds up the filter implementations.
auto merge of #4363 : Ms2ger/servo/collectionfilter, r=Manishearth
auto merge of #4360 : pcwalton/servo/word-spacing, r=mbrubeck

This assumes that there are no ligatures that span across multiple
words. Since we have a per-word shape cache, this is a safe assumption
as of now. I have left comments to ensure that, if and when this is
revisted, we make sure to handle it properly.

r? @mbrubeck
Make DOMParser::ParseFromString actually parse the string
auto merge of #4297 : ChrisParis/servo/parse, r=Ms2ger

Addresses https://github.com/servo/servo/issues/3756. I've tested this code with a new test that I've submitted to https://github.com/w3c/web-platform-tests.
Run the DOM parsing tests.