keypress now function as expected

keypress now:
- Understands key modifiers (alt ctrl shift)
- Uses Shoes v3 naming convention
- yields symbols when key modifiers and/or special keys
Simple refactoring of the key listener into its own file

* but now almost everything is in there
* also added a little sample to try it out
Tests for what is already working for keypress
Shift isn't shown as a modifier but does the upcase magic
only modifier keys yields nothing

* and quite some refactoring/restructuring
pressing the control modifier key
Tests for special keys and special keys with modifiers

* also a test for multiple modifier keys if the keyCode is
  supplied (as it usually is)
* Shift + special keys doesn't work yet... this needs more work
Quite some nice refactoring and :shift_left now works
:control_A now works and refactorings
remove warning during spec run of should_receive on nil
Merge pull request #279 from PragTob/keyPressFixRebase

A working keypress implementation