Add CMake option `WITH_GHOST_WAYLAND_DYNLOAD` which loads `libwayland-{egl/cursor/client}` at run-time.
This wrapper library needs to be updated by hand, although the core of Wayland used by Blender is quite small (20 functions & 15 interfaces).
If it's important we could look into extracting the API's.
Note that there was one complication with `wl_proxy_marshal_flags` which is a variadic function that doesn't have a version that takes a `va_list`.
As far as I can see it's not possible to wrap these functions without either manipulating stack-memory or in-lining parts of libwayland that expand the va_list.
Instead a workaround that replaces functions that use variadic arguments needs to be included immediately after <libwayland-client.h>.
Tested with gcc-12.1 and clang-13.0.1.