Slight `Vim::handleKeyDown` refactor

Incidentally, the refactor solved a bug I just found. Before, you could
not have a custom shortcut such as `zvfa` without triggering the `vf`
command, or `zo` without triggering the `o` command.
Refactor Esc key handling

This includes refactoring of events.coffee and vim.coffee.

The Vim class no longer handles any events. It is just given a `keyStr` in
its `onInput` method. Then it handles that `keyStr`, and reports back if
it was of any use: It matched a command or was used by some mode. That
information is then used in events.coffee to determine if the event should
be suppressed or not.

All events.coffee does now (in the keydown/keypress/keyup handler) is
determine if it should run vim and if it should suppress the event. The
blurring of XUL controls has been moved to commands.coffee, where it
belongs.

Moreover, the Esc key now does two things by default, but only one at a
time. If we're in normal mode, it runs `command_Esc`. Otherwise it calls
`vim.enterNormalMode()`. This allows us to cancel hint markers on dialogs
(such as the help dialog) without closing the dialog (dialogs are often
closed when Esc is pressed).
Refactor modes.coffee by grouping all hints files

There was too much code in modes.coffee, making it hard to extend in the
future. It simply requires mode-hints.coffee. However, adding _yet_ a new
file for the hints was one too much, so I group all hints-related files in
a folder called mode-hints.
Fix #90: Add follow multiple links command