Change keyboard shortcut context

closes #4247
- added scope to every shortcut, the scope of shortcut is default to
  'default'
- add shortcut `enter` to modal which confirm the modal
- shortcut `enter` and `esc` now have scope 'modal'
- when lunch a modal, scope is switching to 'modal', and set back to
  'default' when close
- shortcut `enter` now confirm the dialog without conflicting with route
  shortcuts
Merge pull request #4265 from RaoHai/issue-4247

Change keyboard shortcut context