refactor Jonathan Matthew recurse vfunc patch so it applys and clean up a bit
refactor Jonathan Matthew recurse vfunc patch so it applys and clean up a bit

* this patch does the recursion using the previous patche's support functions

alexef/pygobject,alexef/pygobject,nzjrs/pygobject,GNOME/pygobject,thiblahute/pygobject,jdahlin/pygobject,choeger/pygobject-cmake,sfeltman/pygobject,davibe/pygobject,jdahlin/pygobject,sfeltman/pygobject,GNOME/pygobject,davidmalcolm/pygobject,choeger/pygobject-cmake,nzjrs/pygobject,alexef/pygobject,thiblahute/pygobject,nzjrs/pygobject,Distrotech/pygobject,MathieuDuponchelle/pygobject,thiblahute/pygobject,GNOME/pygobject,sfeltman/pygobject,davibe/pygobject,jdahlin/pygobject,choeger/pygobject-cmake,pexip/pygobject,Distrotech/pygobject,davibe/pygobject,MathieuDuponchelle/pygobject,pexip/pygobject,davidmalcolm/pygobject,Distrotech/pygobject,MathieuDuponchelle/pygobject,Distrotech/pygobject,pexip/pygobject,davibe/pygobject,davidmalcolm/pygobject