3.0 multi checkbox

As part of cakephp/cakephp#2267 this set of changes creates a standalone widget for multiple checkboxes. This widget used to be embedded inside the selectbox which made me very sad. Splitting this out results in simpler code everywhere and will allow developers to swap out each widget independently.

I've done some other changes around ID attribute generation. I've never really liked that we have 2 conventions for ID and classnames. In light of modern CSS frameworks I think it makes sense to standardize on dash separated ID attributes over PascalCase ones. ID generation is also in need of some work as it currently has the same issues @dereuromark recently fixed in 2.x around duplicate IDs.

### Next steps

Next I'm going to add a WidgetRegistry and split out a label widget. The duplication between radio, checkbox, and MultiCheckbox is becoming annoying. I think having a registry will also help @burzum's work on the datetime widget.

I'm thinking that the registry will contain construction logic for the various input widgets and be used by FormHelper to load widgets lazily as they are required and also ensure that only one of each widget object is created.