3.0 - Move checkbox hidden field outside of the label

Currently checkboxes are being rendered as

```html
<div class="checkbox">
    <label for="checkbox-field">
        <input type="hidden" name="checkbox_field" value="0">
        <input type="checkbox" name="checkbox_field" value="1" id="checkbox-field">
        A checkbox
    </label>
</div>
```
which is not valid HTML as a label may only contain a single descendant input element.

This PR adds a special `_split` hiddenField option for checkboxes which will return an array from `checkbox` instead of a string. The array has two keys, 'hidden' and 'input'. `input()` will split up the input array and the label widget will treat the 'hidden' as a new template field. The 'nestingLabel' template has been updated with the `{{hidden}}` field.

The final result is the following:
```html
<div class="checkbox">
    <input type="hidden" name="checkbox_field" value="0">
    <label for="checkbox-field">
        <input type="checkbox" name="checkbox_field" value="1" id="checkbox-field">
        A checkbox
    </label>
</div>
```