[help] Rewrite FSM for simplicity.

- Key events are handled in onEVENT callbacks, not onSTATE.
- Some terminal states are replaced with _none since this is more
  natural to have single terminal state. Now we don't have to depend on
  CodeMirror's vim-command-done signal, which is wrong sometimes.
[help] Simplify state names.
[help] Move FSM callback definitions inside VimFSM().
Merge branch 'rewrite-fsm' into develop