Add CMake option `WITH_GHOST_WAYLAND_DYNLOAD` which loads `libwayland-{egl/cursor/client}` at run-time.
Needed so official releases can be built with Wayland without preventing Blender from starting on systems that don't have wayland libraries installed.
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.
----
NOTE: 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 I could look into extracting the API's.