Implement new CheckboxWidget class

This also provides a CheckboxInputWidget, which is unlabelled.

Additionally, fix TextInputWidget to not try to set the type on the
input as that won't work in IE.

Change-Id: I84bd5e46753d3627b2e26820082c2aeca15b0772