winex11: Avoid creating window data entirely for offscreen windows.
This fixes a series of unfortunate changes made in 844e90b0 b621117c, which started causing various behavior changes as the (foreign / message) client window creation now triggers window data to be created, and even worse, with a whole_window set.
This first makes these client windows to always be created attached to their whole window instead of the dummy parent, and, the be managed more like normal client windows and eventually detached / attached by reparenting them to / from the dummy parent.
The actual issue, which started somehow after 92f5d5bc, is that the client windows are created from an arbitrary thread, when D3D sets its internal pixel format, and this thread display is initialized and used and stored in the newly created window data. The client window lifetime is not bound to this particular thread, and it may outlive the thread itself. We then keep using a destroyed display for the reparenting calls, which is causing crashes.
Using a dummy window data is enough for the client window creation to succeed and the client window will always stay attached to the dummy parent. As we don't create window data anymore, get_win_data will never succeed and we will never assume these client windows are from the current process. X11DRV_get_whole_window will works still, as we need it in some cases, but retrieving the toplevel X11 window from the window property instead.