[RFC] Define special key for asynchronous events

One immediate advantage of this is that we no longer need to call `shell_resized` when asynchronous events happen in insert/normal mode(it's still required in command-line mode)

@philix, can you try to reproduce the OS X redraw issue in this branch? I have a hunch that this PR might fix it.