Introduce a new class to hold the key shortcuts

I think it makes no sense to store the keyboard shortcuts in a dictionary. I have introduced a new class, `SRKeyCombo`, to hold the key + modifier combination. It makes the type signatures easier to read and the code is simpler and safer. The obvious downside is that any code that uses the library has to be updated, this is not a backwards-compatible change.