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

Will add JSDoc later.
This shouldn't prevent this feature from landing, but I think we should file a code cleanup bug to refactor this code to be more properly testable.