Driver keyboard

Rewrote the keyboard driver. Handles most things. 

See #5.