Make the default repository config getter return a snapshot

You should always use a snapshot, with the sole exception of writing to
the configuration.

Any reads that are not against a snapshot have race conditions, both in
terms of returned values as well as dangling pointers.

This may be a bit controversial, but the thing to remember is that any time you're not using the snapshot, you're opening yourself to segfaults and inconsistent views of the configuration.