layout: Make line breaking able to restart from any position.

This commit removes the "merge-fragments" pass from inline reflow,
instead merging "on the fly". This ended up being simpler, as well as
more fine grained. Additionally, this patch makes the line breaker no
longer clone every fragment (!)

This functionality will be used in the implementation of
`text-overflow`.
Add handle_key stub to gonk port
Update azure to fix gonk build
gfx: Implement `box-shadow` per CSS-BACKGROUNDS.
auto merge of #4375 : michaelwu/servo/fix-gonk-20141215, r=glennw

This updates azure to pick up a gonk fix - https://github.com/servo/rust-azure/pull/120 and adds a stub function to the window.
script: Improve dirty propagation and fix script-layout synchronization.

This fixes race conditions whereby layout and script could be running
simultaneously.
script: Add some workarounds for image cache task races
auto merge of #3844 : pcwalton/servo/script-layout-synchronization, r=jdm

This fixes race conditions whereby layout and script could be running
simultaneously.

r? @jdm 
cc @cgaebel
auto merge of #4318 : pcwalton/servo/box-shadow-redux, r=SimonSapin

r? @SimonSapin
layout: Implement basic lists and the CSS1 list properties.

The exact rendering is ill-spec'd. Some things are ugly (especially the
width and height of list style images) but they are infrequently used
and I believe this implementation matches the spec. Numeric lists are
not supported yet, since they will require a separate layout pass.

The implementation is a subclass of `BlockFlow`, on advice from Robert
O'Callahan.
auto merge of #4310 : pcwalton/servo/lists, r=SimonSapin

The exact rendering is ill-spec'd. Some things are ugly (especially the
width and height of list style images) but they are infrequently used
and I believe this implementation matches the spec. Numeric lists are
not supported yet, since they will require a separate layout pass.

The implementation is a subclass of `BlockFlow`, on advice from Robert
O'Callahan.

r? @SimonSapin
style: Move presentational hint synthesis into `legacy.rs`.
style: Parse the legacy `border` attribute per the legacy HTML specification.

Additionally, this patch cleans up some miscellaneous formatting issues
and refactors files in `layout/css/` somewhat to eliminate needless
levels of indirection. It also fixes our handling of presentational
hints that only apply if border is nonzero.
style: Parse the legacy `bgcolor` attribute per the HTML5 specification.

Additionally, this patch cleans up some miscellaneous formatting issues.
style: Implement basic column spans.

This patch provides some of the groundwork for column spans greater than
1. It implements the column-span CSS property (prefixed so as not to be
exposed to content) as well as the corresponding colspan attribute;
although the former is not well-specified outside of CSS multi-column
layout, INTRINSIC refers to it. Although width is distributed to
spanning columns, they do not yet contribute minimum and preferred
widths; this will be implemented in a follow-up.

Additionally, this patch cleans up some miscellaneous formatting issues
and improves the handling of table rowgroups.
style: Implement quirks mode rules.
style: Address review comments relating to `bgcolor` and column spans
auto merge of #4371 : pcwalton/servo/line-breaking-improvements, r=mbrubeck

This commit removes the "merge-fragments" pass from inline reflow,
instead merging "on the fly". This ended up being simpler, as well as
more fine grained. Additionally, this patch makes the line breaker no
longer clone every fragment (!)

This functionality will be used in the implementation of
`text-overflow`.

r? @mbrubeck
script: Fix double-borrow error

This was my fault. It comes up on almost any page after scrolling a bit.
auto merge of #4289 : pcwalton/servo/hacker-news, r=SimonSapin

This patch provides some of the groundwork for column spans greater than
1. It implements the column-span CSS property as well as the
corresponding colspan attribute; although the former is not
well-specified outside of CSS multi-column layout, INTRINSIC refers to
it. Although width is distributed to spanning columns, they do not yet
contribute minimum and preferred widths; this will be implemented in a
follow-up.

The parsing for the legacy bgcolor and border attributes is
implemented according to the WHATWG HTML specification.

Additionally, this patch cleans up some miscellaneous formatting issues,
refactors layout/css somewhat to eliminate needless levels of
indirection, and cleans up the handling of table rowgroups.

New Hacker News screenshot: http://i.imgur.com/hnl2a7E.png