Editing checkboxes occurs immediately on (first, or any) mouse down

Add a protocol that cells can implement to provide whether they should edit
immediately on first mouse down. MBButtonCell is the first cell to implement
this and also overrides `- hitTestForEvent:inRect:ofView:` to provide whether
the mouse event was in the cell or also in the checkbox frame (thus toggling the
state).

Some of the logic in mouseDown: and editSelectedCell was rearranged to support this, and I think there's probably some further refactoring that could happen in those methods.

Fixes #5.