refs: introduce an iterator

This allows us to get a list of reference names in a loop instead of callbacks.
refdb_fs: don't crash when the repo doesn't have a path
Make sure the ref iterator works in an repo without physical presence
Remove outdated test

Selecting wether to list loose or packed references is not something
we want to support anymore, so remove a test for this.
Add iterator support to the testdb backend
refs: implement _foreach with the iterator