added access to the state of the modifier keys

*added some tests to keyboard
*added some helper functins to keyboard related structures