Remove an extra lifetime parameter on NodeHelpers
Remove an extra lifetime parameter on PrivateTreeWalkerHelpers
auto merge of #3542 : zwarich/servo/more-jsref, r=Ms2ger
Implement MutNullableJS for mutable, nullable member pointers to DOM objects.
auto merge of #3531 : Ms2ger/servo/MutNullableJS, r=Ms2ger

Extracted from #3527.
Use std::intrinsics::TypeId

Fix indentation + update comment
No longer consider window size when scrolling

Now that scrolling roots are properly sized, we can simply look at the
scrolling root layer size when deciding the extents of layer scrolling.
This simplifies things a bit and further codifies the current model of
scrolling root + mask_to_bounds.
auto merge of #3544 : mrobinson/servo/simplify-scrolling, r=zwarich

Now that scrolling roots are properly sized, we can simply look at the
scrolling root layer size when deciding the extents of layer scrolling.
This simplifies things a bit and further codifies the current model of
scrolling root + mask_to_bounds.
Fix layer selection and point translation for mouse events

Select the topmost layer at a given point to send mouse events and when
sending the event, ensure that they are relative to the layer origin,
rather than in absolute page coordinates.

Fixes #3504.
Check if the immediate node is an element before looking at ancestors when clicking, and flush pending layout changes after dispatching the event.
Add average advance width to the font metrics structure, using the X glyph as a best guess.
Implement simple layout for text, button, radio, and checkbox inputs. Implement simple interaction for checkboxes and radio buttons.
Disallow toggling radio buttons. Use generated content for checkboxes and radio buttons. Switching to the glyph 0 for the average advance width.
Disallow wrapping on input elements.
Remove unneeded input type information from layout.
Split a long line.
auto merge of #3539 : jamesberlage/servo/fix/meaningful-is, r=jdm

This is intended to address #3488.  [AnyPrivate](http://doc.rust-lang.org/core/any/trait.AnyPrivate.html) is now in the Rust core, so we can leverage that instead of writing an implementation.
auto merge of #3538 : mrobinson/servo/events-and-layers, r=zwarich

Select the topmost layer at a given point to send mouse events and when
sending the event, ensure that they are relative to the layer origin,
rather than in absolute page coordinates.

Fixes #3504.
Fix linux build error.
auto merge of #3520 : jdm/servo/formcontrols, r=pcwalton

So far the changes to layout seem fairly well-contained; I think this is worth integrating to give us a browser that is easier to dogfood (and allows us to work on things like form submission much easier), especially since the long-term viability of WebComponents-as-forms is not assured.