Don't initialize nullable interface arguments to None in codegen.

This allows Rust to check that we've actually initialized all cases.
Pass Option<JSVal> for optional JSVals.
Bumped HTMLCollection interface to latest

Spec:
http://dom.spec.whatwg.org/#interface-htmlcollection

This is a sub-task for #1662.
Added HTMLCollection::create

This is a sub-task for #1662.
Implemented {Document,Element}.getElementsByTagName
Implemented {Document,Element}.getElementsByTagNameNS
Implemented {Document,Element}.getElementsByClassName
Replaced Document::createHTMLDocument in favor of HTMLCollection helpers
Added FIXME stub comments

This is a sub-task for #1662.
Added HTMLCollection content test
auto merge of #1851 : Ms2ger/servo/optional-jsval, r=jdm

Right now, we silently default to null, which is somewhat fishy.
auto merge of #1850 : Ms2ger/servo/init-interface, r=jdm

This allows Rust to check that we've actually initialized all cases.
Remove a pointless argIsPointer local variable.
auto merge of #1856 : Ms2ger/servo/argIsPointer, r=jdm
auto merge of #1838 : brunoabinader/servo/htmlcollection-live, r=jdm
Move content tests to src/test/content for consistency
CONTRIBUTING: link to testing guide
auto merge of #1859 : kmcallister/servo/move, r=jdm

And update `CONTRIBUTING.md`.
Split JSValConvertible into two traits.

Later, we'll want to implement variations of the conversion *from* JS, but
not the conversion *to* JS.
Use Option::or_else in eventdispatcher::dispatch_event.