Added indeterminate checkbox state

A quick attempt to use the checkbox setup showed that without an indeterminate state, it was hard to keep track of what you've done and what you haven't.

Added a CheckboxState class to allow extensible states (maybe even 'kinda' states), and defaulted to indeterminate (not marked).