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.