Implement `position: absolute` for replaced elements.

Add reftests for replaced and nested absolute flows.
Send in the right container block size for relative positioning.

This fixes #1757.
Merge the Wrap and Wrap_ functions in codegen.
Stop passing the scope argument to global object bindings' Wrap functions.
Pass &JS<Window> to some constructors.
Pass &JS<Window> to reflect_dom_object.
Pass &JS<Window> to the Wrap functions in codegen.
Get the Page directly off the Window in CreateBindingJSObject.
Reorder implementations in conversions.rs.
Extend and update primitive conversions.
Use JSValConvertible::to_jsval from codegen.
Implement support for returning nullable primitive types.
Add tests for optional primitive arguments.
Rewrite the codegen for nullable primitives to use JSValConvertible.
Return Result from JSValConvertible::from_jsval.
Pass a JS<Element> to the callback in createHTMLCollection.
Rewrite Document::create_collection to work better with createNodeList.
auto merge of #1811 : Ms2ger/servo/Wrap_, r=jdm
auto merge of #1814 : Ms2ger/servo/more-primitive-setters, r=jdm
auto merge of #1819 : Ms2ger/servo/createHTMLCollection-JS, r=jdm