layout: Enforce that flow construction is thread-safe.

Closes #1584.
auto merge of #1605 : pcwalton/servo/harden-layout-more, r=metajack

Closes #1584.

r? @metajack
Remove duplicate imports from render_task.rs.
Add more documentation for layout.

+ Annotate functions with CSS Reference sections.
+ Clean up comments and whitespace.
Remove unnecessary ClipDisplayItems in box_.rs

For ScannedTextBox and ImageBox, the ClipDisplayItem's child_list is
currently always empty.

ClipDisplayItem is used to implement overflow hidden and should only be
created for block containers, as per
http://www.w3.org/TR/CSS2/visufx.html#propdef-overflow

Take care of the case when a BlockFlow has no children display items -
like an ImageBox with "display: block".
auto merge of #1578 : pradeep90/servo/stacking-context, r=larsbergstrom,larsbergstrom

For ScannedTextBox and ImageBox, the ClipDisplayItem's child_list is
currently always empty.

ClipDisplayItem is used to implement overflow hidden and should only be
created for block containers, as per
http://www.w3.org/TR/CSS2/visufx.html#propdef-overflow
auto merge of #1606 : Ms2ger/servo/unused-import, r=jdm
implement position:relative
auto merge of #1613 : ksh8281/servo/pos_rel, r=larsbergstrom

implement position:relative

this pr implement #792
it gives same result with firefox in "src/test/ref/position_relative_a.html"
r? @larsbergstrom
compositor can get mouse point from window event