Try unparenting client windows when fullscreen again
This takes inspiration from FVWM and implements double parenting of decorated windows, although perhaps for different reasons.
When decorated, we'll now have
graph TD;
Root_window-->Frame_window;
Frame_window-->Wrapper_window;
Wrapper_window-->Client_window;
when a window is floating, but
graph TD;
Root_window-->Wrapper_window;
Wrapper_window-->Client_window;
when a decorated window is fullscreen.
The point of the wrapper window sitting between the frame and the client window is to avoid bugs like #2678 (closed) when we try to avoid extra blits in the X server for fullscreen windows.
This is a less fragile attempt to do what !2910 (closed) also tries, which is to avoid triggering the mentioned "unfixable" client bugs.