WIP: Prepare the port to GTK+ 4
Starts implementing the new behaviors of GTK+ 4 into the GTK+ 3 version so transition and code sharing between the two versions can be easier.
This merge request is currently not ready to be merged as it does next to nothing, and has been opened for review of the overall concept.