Creates a strong array reference to the key commands, and avoid creating an array at every -keyCommands call.
Separated keyboard key events
Adds up/down caret movement with external keyboard. Moves text shortcuts to textView subclass. Minor code refactoring.