Checkbox id must exist before creating label

It doesn't matter, but the label's `for` attribute is still set even if we don't show a checkbox because the screen is unimplemented (i.e. when the menu object has a 'desc' key)
Refactored State with transactional operations.

Exposed public methods call the necessary functions to reflect the
changes.
Refactored reset_all to use one State call.

State.setState can now accept one or more IDs or DOM elements as second
parameter.
Merge pull request #46 from MattiasBuelens/state-refactor

State refactor
Else starts on separate line
Create the partial functions once, no need for currying
Move partial functions closer to _State
Removed currying from setState.

Made rotateState(s) accept element as parameter.
Fixed moving coordinate with arrow keys.

Broken by 60da622d0df1066f61fafaf8852063f18ee91c48.
Merge pull request #47 from MattiasBuelens/state-no-curry

Removed currying from State.setState.
Merge pull request #48 from MattiasBuelens/coord-move-fix

Fixed moving coordinate with arrow keys.
Seems clearer to have a separate plural method
Fixed overlaps not loading from state.

Checkbox states need to be set before setting coordinates.
Draw variability region. Fixes #23.