Change from TNode/TElement::with_element() to as_element().
auto merge of #1867 : saneyuki/servo/1828, r=pcwalton

Fix #1828
Move attributes-related functions onto JS<Element>.
auto merge of #1913 : Ms2ger/servo/attributes, r=jdm
Remove unused import of std::intrinsics::uninit.
Remove the preSuccess and postSuccess arguments to getJSToNativeConversionTemplate.

They were used for unions until 06f9afdad52cba426aedd45d0e08a7b2bdecc8f4.
Remove the codeToSetNull argument to wrapObjectTemplate.
Use CGIfElseWrapper in a few more places.
Remove the declareResult argument to CGCallGenerator's constructor.
Make the result and result_fallible variables immutable.
Stop returning None from getRetvalDeclarationForType and update documentation.
auto merge of #1949 : Ms2ger/servo/cleanup-codegen, r=jdm
Fix code generation for a null default value for nullable string arguments.
Remove support for non-castable arguments.
Make unwrap and unwrap_object less generic.
auto merge of #1951 : Ms2ger/servo/castable, r=jdm
Remove unnecessary allocation in width-computation.
auto merge of #1950 : Ms2ger/servo/nullable-string-with-null-default, r=jdm
Set a name for WorkQueue tasks (fixes #1830)
auto merge of #1948 : mbrubeck/servo/task-name, r=jdm

This is my first Servo patch.  Please don't hesitate to offer basic Rust tips.

Note: This assigns the same name to all of the worker tasks for a given WorkQueue.  Would it be useful to generate a unique name for each tasks (LayoutWorker1, LayoutWorker2...)?