Added special stacking for dialogs.

This requires SmallWM to differentiate its own special move/resize
placeholders and retular windows which are override_redirect. These
functions are declared in wm.h.

Also, the dialogs are stacked via the update_desktop_wm() function to
always place them on top.
SmallWM now uses the WM_TRANSIENT_FOR property to detect dialogs.

Some dialogs don't set override_redirect = True, and as a result were not
handled as actual dialogs. Windows which do not set override_redirect
usually set WM_TRANSIENT_FOR, which SmallWM now uses to detect these
dialogs.