Revert "Revert "Use GObject-introspection""

This reverts commit 27c65d2bbcc8eb6a032c0d861b2ddbf109a8cfdc.