Adds better support for key presses and releases, they now execute on
the same thread as the OpenGL render, so there are no odd glitches when
the keys manipulate the GL camera, etc. Adds a "flagsEvent" listener for
more robust processing of modifier keys (eg, you can listed to just a
shift or command up or down by itself, *or* in conjunction with a
alpha-numeric key press).