Keyboard fix for Issue 212

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.

https://github.com/DCPUTeam/DCPUToolchain/issues/212