WIP: Refactor property handling and support more array types
Still WIP, since in d914f991 there is a memory-leak when handling C arrays
This PR is an assortment of various fixes to enable the setting GArray properties with introspected elements correctly in pygobject. One big change is that the set_property codepath is now unified - we always try to use the introspection data first and then fall back to the non-introspection path if that is unavailable.
Some tests which indicated that certain inputs were unsupported have been updated.
Some commits can be safely cherry-picked since they are unrelated to the main work done here. It should be pretty clear which ones those are.
The tests for GArray handling require an update to the Regress object in gobject-introspection!255
Ideas on how to handle the memory leak when unwinding C-array properties welcome.
(And sorry for the long MR. This turned out to be non-trivial, which I guess explains why it went unfixed for so long)