experiment in using a custom form control

Instead of jury-rigging a whole lot of individual checkbox elements
in a group using CSS to produce the appearance of a heirarchy, this
uses a custom form element that encapsulates all the setup and
validation.