Implement custom keyboard shortcuts support with a user key map file.

Will add JSDoc later.
This is the comment about the JSON parser silently rejects exact keys and we don't have a chance to report them as duplicates