Fix menu positioning when opened via keyboard.  Fixes #17769.
(Backport to 1.9 branch)

Changes include:
  - make keydown handler process context-menu key in addition to shift-F10
  - (for keyboard) open menu around focused node rather than node matching
    this.targetNodeIds / this.selector
  - different approach to avoid repeat contextmenu key event;
    1ms delay in _scheduleOpen() was too short; there's about 100ms between
    the keydown and contextmenu events on IE8
(cherry picked from commit a1603906e165c51c8ff57a084fe165f409348fa4)

Conflicts:
	Menu.js