ListToolGroup: Implement collapsible/expandable tools

Collapsible tools are shown when the user clicks the "More" option at
the bottom of the list.

* Added some configuration options to ListToolGroup to allow marking
  certain tools as collapsible (either using a blacklist or
  whitelist).
* The collapsible tools are not automatically positioned at the bottom
  of the list; you may want to use the 'promote' and 'demote' options
  to achieve this.
* Following the design at [1]. This could really use a slide up /
  slide down transition, but it's not clear to me how exactly one
  should behave.
* The code is somewhat ugly, since toolbars are somewhat inflexible.
  It should, however, be easily extensible for other tool group types.
* Converted one of the lists in toolbar demo to use this.

[1] https://commons.wikimedia.org/wiki/File:Editing_Team_-_2014–15_Q1_quarterly_review.pdf?page=19

Bug: 70568
Change-Id: Ide5bb5e14eff305ca40d9f62fb42b7efab648b6f
Introduce ButtonInputWidget

A button that is an input widget. Intended to be used within FormLayouts.

Compared to ButtonWidget:
* ButtonInputWidget is a <button/> or <input/> HTML tag and can behave
  like a form submission button
* ButtonWidget is a <a/> HTML tag (unless overridden) and can behave
  like a hyperlink
* ButtonInputWidget's element can have 'name' and 'value' attributes
* ButtonWidget's element can have 'href' and 'target' attributes
* Both fire a single event, 'click'
* Both use a ButtonElement mixin
* Both have icons, indicators, titles, flags and labels that all work the same

<button/> is the default HTML tag. <input/> is made available to make
it possible to support forms with multiple submit buttons on IE 6,
which handles <button/> elements badly. (Of course it comes with the
usual caveats, notably sacrificing icons and indicators.)

Change-Id: I2f5a4aa02485e9a27a5e9a354b29cb68a905472b
Merge "ListToolGroup: Implement collapsible/expandable tools"
Merge "Introduce ButtonInputWidget"