prevent deadlock in List() for B2 when b2.connections=1
prevent deadlock in List() for B2 when b2.connections=1

This is a fix for the following situation (gh-1188):

List() grabs a semaphore token upon entry, starts a goroutine, and
does not release the token until the routine exits (via a defer).

The goroutine iterates over the results from ListCurrentObjects(),
sending them one at a time to a channel, where they are ultimately
processed by be.Load().

Since be.Load() also needs a token, this will result in deadlock if
b2.connections=1.

This fix changes List() so that the token is only held during the call
to ListCurrentObjects().

ar-jan/restic,middelink/restic,restic/restic,middelink/restic,kurin/restic,fawick/restic,ar-jan/restic,kurin/restic,fawick/restic,restic/restic