Fix input for Alt+Key sequences
Support Shift/Control keyboard modifiers

- It seems we don't actually support modifier keys for
  non-special keys (Alt was the exception)
- This commit encodes modifiers in the same way done in
  the special keys function
* Issue#91
Fix Control modifiers for ASCII control keys

- After enabling keyboard modifiers for regular keys
  I inadvertently broke some keys that were previously
  working - in particular ASCII keys that already imply
  a Control sequence, e.g. Ctrl+t is actually an ASCII
  Device Control key. To solve this I've disabled the
  CTRL modifier for ASCII keys below 0x20
- Unfortunately Vim only seems to accept these special keys
  in their single byte form i.e.

      CSI KS_MODIFIER MOD_MASK_CTRL 't'

  is not the same as (and needs to be)

      0x14
- The downside of this is that some sequences are not working yet
  e.g. Ctrl+Enter
Enable modifiers for the Return key

- I've added a mapping from Return to \r to the
  special keys table, theis enables the use all
  keyboard modifiers with this key.
Cleanup the code just a bit
Fix Alt for single keycode special keys

- We now also encode the Alt modifier in special keys with a single
  keycode (e.g. Return, Space, Tab)
- Removed the code that handled modifiers for Ascii sequences
  Qt is already handling Ctrl, and there is nothing usefull to
  be done about Shift
- Added Enter and Space to the special keys table - we
  can now use modifiers with these keys as well
Unify keyboard input handling functions

- This commit refactors most of the keyboard input handling code
  to handle all of it in a single method
- Removed the old specialKey() method, everything is now handled in
  the keyPressEvent() method
- Cleaned up the special key table
Cleaup code a bit