Keypresses lost if pressing two separate keys between getKey calls (*nix)
I think there might be a bug in the `getKey` implementation for OS X (it appears the same implementation applies for linux).

If two (or more) keys are pressed between `getKey` calls, for example pressing "A" and then "B" and then calling `getKey`, then `Key.None` is returned. My expectation was that the first call to `getKey` would return `Key.A` and the next subsequent call to `getKey` would return `Key.B`.
(At the very least, I expected the first keypress not to be lost. Ideally, for my use case, neither keypress would be lost. This latter behaviour also seemed to be suggested by the documentation.)

Taking a look at the [source](https://github.com/johnnovak/illwill/blob/master/illwill.nim#L673), it appears that the approach used on linux and OS X is to (1) read all available key characters into a buffer, and then (2) attempt to parse the whole contents of the buffer with the [parseKey](https://github.com/johnnovak/illwill/blob/master/illwill.nim#L642). If I'm not mistaken, this approach causes the issue, because in the above situation both keycodes would be read into the buffer and then this would not be parseable if the parseKey function expects to interpret the buffer as a single keycode (this checks out, based on my surface-level understanding of the parseKey function, which appears to apply a linear search for single matching key sequences in case there would be multiple keycodes present in the buffer).
It seems like an approach more like the one used for windows ([source](https://github.com/johnnovak/illwill/blob/master/illwill.nim#L411))---wherein the input characters are read on-demand so that only a single keycode is ever pulled into the program---could be one way to solve the problem. However, I'm personally unfamiliar with keyboard input processing on any OS.

Note: My actual use case involves arrow keys. The same issue applies. So, I expect the individual keycode length is not the issue.