[RFC] Handle special KE_EVENT case where maxlen < 3

Possible bug reported by @oni-link [here](https://github.com/neovim/neovim/pull/485/files#r11664573).

It was handled by doing a circular walk through a key buffer and saving the index between calls with a static variable.

Also replaced some `char_u` occurrences by `uint8_t` and removed unused headers in input.c module.