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.
Prefer event.keyCode to event.which, and a few other suggested changes.
Merge pull request #22 from donmccurdy/patch.dvorak.pr

Fix for dvorak-qwerty keyboard layout.