Move keypress listeners to move global SWT event

Key-presses were previously listened to via the Swt::Shell.add_key_listener.
This worked ok, but had the drawback that if a button had gotten the default
focus (depending on your OS conventions), then keypresses would get eaten as
they were sent to the button instead of the shell.

This commit changes to use the ::Swt.display.add_filter mechanism, which is a
more global way of listening to keypresses before they get sent to the various
SWT widgets on the screen. This means that we see the keypress in the filter
before the button choses to eat it.

Also removed some of the unnecessary intermediate machinery around the key
events vs listeners.
Only handle keypresses from our shell
Remove unused Shoes::Swt::KeyEvent class
Filtering for keypresses to forward

Certain SWT controls--buttons, text, combos--have handling for some keypresses
on their own already, and in Shoes 3 wouldn't send those keys along to key
press handlers.

Since the SWT display filters we're using see all the events, to maintain
consistency with the old behavior, we try to manually filter out the events
that shouldn't get through.
Tests for ignoring keypress events
Merge pull request #646 from shoes/global_keypress

Move keypress listeners to a SWT event fixes #384