add various key-related fields to KeyboardEvent

Add KeyIdentifier, KeyCode and KeyLocation fields to KeyboardEvent.
Apparently, the whole "keyboard input" situation in JavaScript is a
mess, with different browsers implementing different (non-standard)
behaviours, some browsers supporting newer standards and some browsers
not supporting them or only supporting deprecated versions of them.
Behaviour might even differ between the different input
events (keypress, keydown and so on.)

We'll simply add all the attributes there could possibly be. Writing a
cross-browser abstraction that hides these details is out of scope and
left to a third party.