discoverd/client/dialer: Try to dial each service before giving up

Instead of trying to dial a single random instance once, try to dial each instance in the list in random order before giving up.

This should fix one or two intermittent test failures.

Refs #686