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

Will add JSDoc later.
Sorry, forgot to commit this one. I have it locally changed.