repo: Enumerate objects using openat() too, make more efficient

This drops several calls to malloc()/g_object_new() per object
enumeration.  Just a followup to using openat() and friends in other
places.