keyboard: add KeyboardMap and KeyboardListener
keyboard: api improvements
Merge pull request #40 from koding/keyboard.squashed

keyboard: add KeyboardMap and KeyboardListener