rework lowering after the recent changes to the raising
code... lowering is less complicated than raise. when lowering we do
one of the following:
1. if the window is in a group, we lower the entire group in the
current stacking order
2. otherwise, if the window has transients, we lower the window and
all of its transients in the current stacking order
3. otherwise, we simply lower the single window
this differs slightly from raise, which first works on the
group/transient-tree and then raises the target window in the
group/transient-tree... lower doesn't act on the target window, it
merely does the action on the group/transient-tree