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
 - [x] Backcompat: Draft this on the wiki
 - [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

We should really probably just use 2 different classes and avoid first and last all together. Much faster selectors and realistically if your calling them with different options you probably are just going to use a different selector most of the time. like `controlgroup-vertical` and `controlgroup-horizontal` or maybe just `controlgroup` for the default case and `controlgroup-vertical` for the vertical.