Fix/redesign/refactor/improve a number of widgets

This is a rather sweeping redesigning/refactoring/fixing effort for a hierarchy of Spark widgets. The heaviest edits are in:

* spark-selection
* spark-selector
* spark-menu-button
* spark-suggest-box

Somewhat lighter changes are in:

* spark-menu
* spark-menu-item
* spark-widget
* etc.

I might post a summary of major changes later, but if anyone is willing to review this, it might make sense to go over each individual commit to trace the history.

Since this is strictly limited to widgets/, I'll probably TBR and merge this later today.