This adds a bit of flexibility with regard to plugin compatibility, so the core and plug-ins do not need to be the exact same version
Define an ABI version separately from the project version to allow ABI-breaking changes in the future
Allow plugins to define compatibility with the display backends (X11 and WAYLAND) and the requirement to support OpenGL
Allow loading a module fail more gracefully and avoid doing any init while loading a module might be canceled (fixes a crash if there is a version mismatch with the dock-rendering plug-in)