Initial unmodified dump of Gecko's union codegen.
Implement WebIDL union support.
Clean up TrySetTo interface to avoid mutable outrefs.
Remove commented bits that aren't necessary.
Remove methods from IDL that don't do anything useful.
Move HTMLDocument members to Document.
Remove HTMLDocument.
Remove document::DocumentType (fixes #1730).
Remove DocumentTypeId.
Move from gfx::opts to servo_util::opts.
auto merge of #1739 : Ms2ger/servo/document-cleanup, r=jdm

The specs currently have only Document; this may well change, but the split won't be along the lines we've implemented right now. In the meantime, this simplifies our code quite a bit.
Make JSVal conversions actually fallible.
Address review comments. Fix union conversion result mistakes introduced in refactoring.
auto merge of #1738 : saneyuki/servo/opt, r=kmcallister

I think gfx/opts.rs should be placed to more general place.
auto merge of #1689 : jdm/servo/unions, r=kmcallister

Seven hours on a train without internet will do this to you. Fixes #541.
layout: Run assign-widths in parallel.

5% layout speedup on mobile Wikipedia.
layout: Combine assign-widths and assign-heights traversals.

15% layout speedup on mobile Wikipedia.
layout: Make `ParallelPreorderFlowTraversal` more generic
layout: Construct flows in parallel, without a leaf set
layout: Create a font context in sequential mode