Button Re-write

This replaces PR #1216 

This includes new widget controlgroup which replaces buttonset
Current known issues 
 - [x] Checkboxradio testfailure missing default element (@scott_gonzalez said it should not have one because it cant be sane ) this causes common tests to fail
 - [ ] Backcompat
 - [x] Controlgroup icon only buttons 1px too short in chrome, firefox extra weird @jaspermdegroot think you could take a look?
 - [x] demos/controlgroup/default.html As above, labels should demo something
 - [x] demos/checkboxradio/default.html doesn't have the "command line" anymore, but still doesn't look like a demo. Labels should reflect some real world usecase.
 - [ ] demos/button/icons.html still looks like a visual test, not a demo

This is specific to a single widget, but there's no way to add special handling for other widgets. You can add properties to the `items` option, but we also need a hook to deal with other widgets,  which selectmenu should use by default. Could use a convention like `_enhance_[property]`, where `[property]` is replaced by the name of the widget, like selectmenu.