Keyboard buffer now circular

Keyboard's buffer had the ability to lose typed keys and return garbage.
A circular buffer is now used so garbage will never be returned.
When the buffer is full, the oldest key is discarded.
Merge pull request #213 from psycocoffey/master

Keyboard fix for Issue 212