Get rid of a redundant array of groups per screen; we already have a
link to the group queue for each screen.
screen_fromroot -> screen_find
more style nits
Add screen_ctx to group_ctx, and populate on init.
Now that a group knows its screen, only pass down the group_ctx.
Remove duplicate client queue (mruq); instead, remove and take the
global Clientq and place it inside screen_ctx since every client belongs
to a screen, then use the same per screen clientq to track stacking
order (the sole reason for mruq).
since mruq has been folded in, rename mru-named functions
more style nits and wrapping
name the group client queue appropriately, like other queues
move the check for an empty queue up during cycle
fold in 'active' into 'flags'
Remove incorrect cast in kbfunc_exec. In kbfunc_ssh, reverse logic on
truncation check so it's obvious.
use similiar style for client flags
Introduce a check to see if a group holds only 'sticky' clients and use
this check to decide if a group is virtually empty.  Rationale: if a
group contains *only* 'sticky' clients, it should be skipped while
cycling through groups.  Apply similar logic to the group menu.

Based on an idea from phessler@, who also tested another version.
Implement EWMH _NET_WM_STATE_HIDDEN.
don't toggle _WM_STATE_HIDDEN here yet
Use a similarly named check as sticky for hidden check in a group.
ewmh states _NET_WM_STATE_STICKY should not alter position
these client actions are just toggles; less confusing with better names
Move motion time check to the top of each MotionNotify block (and
eliminate from ButtonRelease); further limits the amount of work done
outside the threshold, notably mousefunc_sweep_calc,
screen_find_xinerama and client_snapcalc.