Fix missing param in mouse-chord
Introduce class Puzzle and refactor

DemoCtrl separated from MainCtrl. Refactor MainCtrl to maintain
a consistent Puzzle data model.