prepare for full EWMH window types, states and actions

 prepare to support all _NET_WM_WINDOW_TYPE types, all
 _NET_WM_STATE states, and all _NET_WM_ALLOWED_ACTIONS
 plus: _NET_WM_ACTION_FLOAT and _NET_WM_STATE_FLOATING
prepare to perform actions on non-focussed windows

 Many of the actions that are activatable by keypress only
 acted on the focused window in the global "sel" variable.
 Other actions only acted on a tag argument (which is a
 string converted to an index using idxoftag()).

 This commit converts "sel" actions to act on a specified
 client window instead, and converts the "idxoftag" actions
 to take an integer index instead.

 This commit also provides preliminary support for all
 _NET_WINDOW_TYPE types as well as providing
 _NET_WM_ALLOWED_ACTIONS on client windows.  It also prepares
 to process more _NET_WM_STATE atoms, both on initially
 managing and window as well as when repporting.
complete support for _NET_WM_DESKTOP and _MASK
support more EWMH states and EWMH moving and resizing