add shortcuts.prototype
separate keydownMap and keypressMap
added ability to register key-listeners
improved textBeforeCursor & textAfterCursor
some changes in caret