Start selection at index 0

The menu items appear always in the same order. Therefore selecting the
second item (0-based list) appears to be a bit arbitrary, as it is
sometimes the currently focused window, the next window or some other
window.
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.
New command line option '-index'

For specifying which item gets selected first when calling
simpleswitcher.
Documentation for '-index' option
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)
fixes #2
Replace defines for options with in situ values

The values are now assigned at compiled time. Hence it is not necessary
anymore to check for valid command line values at runtime and assign the
default value if necessary. Now it is sufficient to assign a new value
only if there actually is one.

This is also some preliminary work for other sources of configuration
values.
Struct for reading config values from X resources

We need to know the type of the value to process it properly on parsing.
Passing the values as addresses is necessary because num and str need to
be compile time constants for assigning them in the array.
Read configuration values from X resources

Configuration values can now be specified as X resources (e.g.
~/.Xdefaults, xrdb -load ~/.Xdefaults, man 1 xrdb).
Name or Instance is 'simpleswitcher', Class is 'Simpleswitcher'.

Possible values are:

	key
	dkey
	width
	lines
	font
	foreground
	background
	alternatebg
	highlightfg
	highlightbg
	bordercolor
	release
	startindex
	borderwidth
	opacity

E.g.:
	Simpleswitcher.key: F12
	Simpleswitcher.width: 50
	etc.
Documentation for X resources feature + resource names
Bugfix: Segfault when XResourceManagerString is NULL

Using the XResourceManagerString unchecked caused a segfault. This
happens when Xresources are not loaded, e.g. using xrdb.
Merge pull request #6 from jrk-/xresources

Xresources!