Support GlobalEventHandlers.onclick.
auto merge of #2619 : Ms2ger/servo/onclick, r=jdm
gfx: Binary search for the start position when iterating over the slices
in a text run.

This makes painting of text display items faster and matches what Gecko
does.
Remove PaddedUnsafeFlow.
Fix type the type name.
Remove 'LayoutNode.pad' field.
auto merge of #2621 : pcwalton/servo/binary-search-fix, r=brson

in a text run.

This makes painting of text display items faster and matches what Gecko
does.

Incorrect automatic derivation of `TotalOrd` broke it last time.

r? @brson
auto merge of #2612 : saneyuki/servo/rm_pad, r=jdm

Fix #2512
Outside of compositor, store window size in CSS px

This fixes an issue where the CSS viewport was too large on high-DPI displays
because it was set to the window size in device pixels, instead of px.  This
patch ensures that the window size is converted from device pixels to px
before being passed to script/layout code.

The Window trait now exposes the window size in both device pixels and
density-independent screen coordinates, with clearer method names.
auto merge of #2624 : mbrubeck/servo/units, r=pcwalton

This fixes an issue where the CSS viewport was too large on high-DPI displays
because it was set to the window size in device pixels, instead of px.  This
patch ensures that the window size is converted from device pixels to px
before being passed to script/layout code.

The Window trait now exposes the window size in both device pixels and
density-independent screen coordinates, with clearer method names.
layout: Fix several bugs in the handling of generated content with
`display: block`.

The iteration was incorrect here. Although it accidentally worked
before, it caused internal parallelism bookkeeping to get corrupted when
incremental reflow was added.
layout: Refactor layout a bit, addressing code style issues and folding
the contents of `extra.rs` into other modules as necessary.
layout: Implement `Show` on more types, for debugging.
layout: Implement incremental reflow.

This involves using flows from previous reflows to construct new flow
trees. It temporarily removes the old damage calculation pass.

The reftest `setattribute_id_restyle_a.html` is a good test of
this functionality.

The new added reftest `after_block_iteration.html` verifies that
pseudo-elements interact properly with reusing flows from layout to
layout. Without the iteration changes made in the prior commit, this
would cause a hang. This is a minimized test case that came from
Wikipedia.

There are some known issues with incremental reflow:

 * We leak text on every resize.

 * Maximizing the window causes layout to hang.

 * Not enough damage may be done to the document if sibling selectors
   are present.

 * Not as many optimizations are implemented as Gecko and WebKit.