Factor out keycode grabbing for reuse

Leave grab_key stub in place for compatibility with existing code.
grab_keycode() can now be used by other functions (particularly
grab_modifier().
Grab keys which function as modifiers

Those keys can be found using XGetModifierMapping().
Keycode * keycodes parameter serves as return parameter for later use of
modifier keycodes.
Macro for checking if a keycode is a modifier

Since maximally 8 keycodes per modifier are allowed, a loop free
painless macro can be used instead.
Grab modifier keys and write them to global values
Implement new behaviour based on release of modifier key

* Works only when a modifier key is specified, e.g. mod1+Tab, otherwise
  normal old behaviour
* Pressing modifier + key will pop up simpleswitcher, holding down
  modifier and repeatedly pressing key will cycle through the list
  Upon release of modifier the selected entry will be focused
* Hitting Escape once turns of the release action. Now entries can be
  filtered by typing, programs can be started or entries can be cycled
  through again
* Hitting Escape a second time aborts simpleswitcher without any action
Actually implement point #1 from the previous commit

Retains the old behaviour if keys without modifier are used.
Command line switch for {en,dis}abling mod+key release feature
Make use of cmd line option for release feature

Need to invert value to make the disabled state the default case.
Documentation for the action-on-key-release feature
Merge pull request #4 from jrk-/alttab

Options modifier+Key window/workspace switching behaviour like the common Alt-Tab (i.e. commit selected change on modifier release)