v3: Keep things simpler, only introduce the helper that can change from unmanaged to managed but forbid changes the other way around for now. Include the embedded flag changes within it too, as it need to be changed *after* window has been withdrawn.
Note that it may not be 100% correct: if an already managed window is changed to be embedded while it has WM_STATE changes inflight the Withdrawn request will be delayed. This is a preexisting issue though, and to address it we'd need to make the managed/embedded async like v2, which can be done later.