Added the start of the keyboard manager

This is based on an earlier project of  mine, and essentially I've tried
to cut away what we don't need, so then I can further customize the code
from this base for our project. This is currently incomplete, as I
wanted to get your guys input before I go too much further.