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 #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.