Implement debouncing keys

From the commit message:
```
On my Kinesis, it frequently happened that a key would trigger twice on
one keypress, e.g. I’d see “lonng” instead of “long” on my screen.

With this change, keys have to be recognized as pressed 8 times in a row
in order to be reported as pressed. This constant might need to be
tweaked for each kind of hardware. I didn’t do any calculations or
measurements — I just tried 8 and it worked fine for me so far.
```

This is a rather quick, straight-forward, hardcoded implementation which works for me.

Please let me know if you want anything changed (or do the changes yourself if you prefer) before merging :).