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

Will add JSDoc later.
`result` never resolves/rejects if `json` is falsy.