Replace some Option matching with higher order methods

This shrinks the code and should be easier to read if we are used to the
idioms.

Also change one copy to clone() while we're here.
Clean up calls to layout_root.dump()

We had two calls, one of which was dead code.
Derive Clone for FlowContext
Move is_root() into AbstractNode
Bump rust-css version
Add traverse_{pre,post}order_prune
First attempt at incremental layout

For now we only prune the bubble_widths traversal, because of inability to
reuse FloatContexts.  Other limitations are likewise marked with FIXME
comments.
Fix color-change-text.js

After a2bdab7 we need window.document instead of document.
auto merge of #646 : kmcallister/servo/incremental-layout, r=metajack

This is a first attempt at incremental layout.  When recomputing styles, we compare old and new CSS properties to determine which layout steps can be skipped.

Since I'm new to Servo I'm not sure that my code matches the idioms of the project.  Please don't hold back with review comments :)