Rework shortcut internals
Summary: Here is a diff which contains my local work done so far. Although there is always more work to do to get the internals looking cleaner, I think the core is now in an acceptable state. The primary step after this will be to implement loading and saving. Once that is finished, schemes support should be straightforward to implement.
Reviewers: rempt
Maniphest Tasks: T947
Differential Revision: https://phabricator.kde.org/D498