Fix for dvorak-qwerty keyboard layout.

And any other layouts in which ctrl/alt/meta modify the keyCode. Basically, event.which appears to be the reliable identifier.

Gist:
  - If event.which is valid ASCII, and the keyIdentifier is something mappable (hex values good, left/right/enter bad), use event.which
  - If the keyIdentifier was not mappable, use the existing charCodeFromHexCharCode => keyFromCharCode mapping
  - Otherwise, use the keyIdentifier as-is.