Initial import of cwm-3.

tested by sturm@, ok matthieu@
add conf_ignore and move group_make_autogroup to conf_autogroup to match.
zap extra space
slightly rework WM_STATE set/get to make it less ambigious; will be more clear
on what needs to change to make it right in the end.
mechanical xu_{get,set}state -> xu_{get,set}_wm_state change
use an int in screen_init and avoid needing to cast for screen number (which).
type fix
missing proto
group conf_* init functions
no need for font_{ascent,descent,height} wrappers; limit font_width to
just requiring xftfont.
only redraw the name/size box when the client resizes, not every time
there's movement; should slightly help with resize syncs.
get rid of cc->name in the resize box and make dimensions more readable.
zap leftover debug printf
- no need to position and size the menu window before an Expose event
  since we'll be calculating required size later anyway; allows us to
  consolidate all prompt/display/search string building goop into
  menu_draw.
- reset the pos/size of menuwin when leaving a menu.
- reverse the 'prompt' NULL check to be consistent with 'initial' one
  and fix a whitespace nit while here.
border width/color makes no sense on menuwin
remove group in client_delete directly.
negative values for borderwith, moveamount, snapdist and gap are
configuration errors, so warn and load defaults.
border width/color makes sense for some, so put it back
fix KeySym type
int type fixes