Initial rework of keymapping code.

Based on Jacek Generowicz code from:
  http://www.haskell.org/pipermail/xmonad/2012-October/013087.html

Signed-off-by: Ray Lehtiniemi <rayl@mail.com>
Port workspace and screen hotkeys to new method

Signed-off-by: Ray Lehtiniemi <rayl@mail.com>
Reorder command definitions

Signed-off-by: Ray Lehtiniemi <rayl@mail.com>
Fix incorrect key string

Signed-off-by: Ray Lehtiniemi <rayl@mail.com>
Type annotations for all (except Layout...)

Signed-off-by: Ray Lehtiniemi <rayl@mail.com>
Reorder a few lines

Signed-off-by: Ray Lehtiniemi <rayl@mail.com>