3.0 checkbox widget

As part of #2267 this set of changes adds the checkbox widget. I've also done some refactoring in the radio and select widgets to rename 'value' into 'selected'. The widgets data keys should try and map to HTML wherever possible. I'd also like to keep consistency between as many widgets as possible. Since checkboxes use value for the HTML attribute, we will need to use 'selected' instead. I've updated the other widgets to use 'selected' as well for consistency's sake.