WIP: plugin loading by shared object path
This moves the plugin discovery behaviour from the library into the client.
With this change, a client will be able to load plugins from arbitrary locations in the file system and use different plugins for different toplevel surfaces. Implements option A of https://gitlab.gnome.org/jadahl/libdecoration/-/issues/7.
Edited by Jonas Ådahl