Add support for keyboard events

My intention was that any keypress other than 'q' would be a NoOp, but at present all keypresses seem to either activiate the QuitCommand or cause the program to exit by some other manner.  I don't think that minor bug should hold up this PR however, in case someone else wants to work on Hatter.