Add nsobject drawable window, forward port caopengllayer patches and fix resizing
Add a drawable window implementation, superseeding !1818 (closed), to replace the drawable code in the display.
To do so, backport the previous patches from 3.0.x branch which fix and rewrite most of the caopengllayer code on 3.0 and then fix the resize to match what's expected of 4.0 displays. Note that 4.0 caopengllayer is quite broken, and the code is also still broken (deadlocking) after the backport, hence why the priority adjustment is done at the end of the merge request.
The code in macosx.m is not leading to a crash or incorrect behaviour for now, and will be fixed in !1820 (merged) after rebase on this branch.
After this branch, resize is correct even on libvlc and is super smooth because of redrawing asynchronously at the caopengllayer level.
Refs #26845 (closed) Refs #26864 (closed)