layout: Stop going to the DOM to guess width.
layout: Stop going to the DOM for text alignment.

Verified against the existing text alignment reftests.
layout: Stop going to the DOM for vertical align font sizing.
layout: Change a couple of `Box::new` calls that accessed the nodes into
`Box::transform`.
layout: Replace `AbstractNode`s in layout with `OpaqueNode`, preventing
DOM access during reflow.
auto merge of #1410 : pcwalton/servo/opaque-node, r=pcwalton

This shuts off all layout access to the DOM after flow tree construction, which will allow us to run script concurrently with layout during reflow and display list construction—even without the COW DOM. It also gets us closer to making `AbstractNode` noncopyable, which is important for safety because the JS GC will not trace layout.

r? @kmcallister