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.
Make JSVal conversions actually fallible.
Address review comments. Fix union conversion result mistakes introduced in refactoring.
auto merge of #1689 : jdm/servo/unions, r=kmcallister

Seven hours on a train without internet will do this to you. Fixes #541.