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

Will add JSDoc later.
According to [JSON.parse() page on MSDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse), json can be falsy, so what about this:

```js
    result.resolve((json && json.overrides) || keyMap);
```