Remove the argcAndIndex argument from instantiateJSToNativeConversionTemplate.

This commit does not change the generated code.
Remove the isOptional argument and the dealWithOptional return value from getJSToNativeConversionTemplate.

Note that dictionaries currently don't support members without default values
right now.

This commit does not change the generated code.
Merge Page and PageTree.
Add message to fonts.len() == 0 assert
auto merge of #2420 : Ms2ger/servo/merge-Page-PageTree, r=pcwalton
Move Window helper methods to a WindowHelpers trait
auto merge of #2394 : Ms2ger/servo/instantiateJSToNativeConversionTemplate, r=jdm

This moves all the handling of optional arguments into `CGArgumentConverter`, and leaves `instantiateJSToNativeConversionTemplate` to only deal with the declaration of stack variables.
Remove addHTMLElement from Bindings.conf.

We can just use the defaults for all of the HTML elements for now and
deal with the nonstandard behavior later. This fixes #2207.
auto merge of #2425 : saneyuki/servo/window_helper, r=jdm

Fix #2418
auto merge of #2428 : zwarich/servo/remove-add-html-element, r=jdm

We can just use the defaults for all of the HTML elements for now and
deal with the nonstandard behavior later. This fixes #2207.
Avoid unnecessary Rc clone in Window::new.
Add a link to easy bugs
auto merge of #2430 : Manishearth/servo/patch-2, r=SimonSapin

I noticed that our CONTRIBUTING file doesn't link to the easy bugs, maybe it should?
auto merge of #2429 : Ms2ger/servo/page-clone, r=jdm
Remove OptNewVector and use Vec instead.

Before we had Vec<T>, Option<~[T]> was used as an optimization of ~[T]
to avoid allocating for empty vectors when that was the common case.
Vec<T> itself does this optimization, so there is no need for this anymore.
auto merge of #2432 : SimonSapin/servo/remove-optnewvector, r=larsbergstrom

Before we had Vec<T>, Option<~[T]> was used as an optimization of ~[T] to avoid allocating for empty vectors when that was the common case. Vec<T> itself does this optimization, so there is no need for this anymore.

r? @larsbergstrom
Switch to using ContravariantLifetime in JSRef<'a, T>.

Since ContravariantLifetime doesn't take up any storage space, this
means that JSRef will be a single word. This fixes #2333.
Don't check the field parameter in LayoutNode::eq.

The chain field shouldn't be relevant for equality, since it is just a
hack to artificially extend lifetimes.
Use ContravariantLifetime in LayoutNode.

Since ContravariantLifetime uses no storage, this will reduce the size
of a LayoutNode from 3 words to 2.
auto merge of #2436 : zwarich/servo/contravariant-lifetime-layout, r=pcwalton

Since ContravariantLifetime uses no storage, this will reduce the size of a LayoutNode from 3 words to 2.