Build gobject-introspection repositories
Add some GObject introspection annotations

Also, make the API a tiny bit more binding-friendly at some places.