Refactor and simplify checklist models.

After a discussion with John I came to the conclusion that the model
design for the checklist feature was a bit too complex to start with,
and we could cover most of the use cases with this simpler model. It
should be fairly straightforward to add any additional required
functionality later.
Merge branch 'feature/checklists'