Various refactorings

See the commit logs for changelog and rationale. I hope that the changes improve code readability and maintainability and can be merged. It would be a shame for `MASShortcut` to evolve into the hairy ball that became of Shortcut Recorder.

Major tasks yet to be done:

- [ ] Introduce a separate dispatcher class to bind shortcuts to actions?
- [ ] Introduce a separate class to persist bindings to user defaults?
- [ ] Add documentation