Reconnect to discoverd when the connection drops

Hmm so I had it like this because we only want to continue `if err == nil`, and in the other case we want to fall through to the `break`. Do you think there also needs to be a `break` here? I.e.:

```go
if (s.call.Error == rpcplus.ErrShutdown || s.call.Error == io.ErrUnexpectedEOF) && !s.isClosed() {
  err := s.c.reconnect()
  if err != nil {
    log.Printf("discover: failed to reconnect: %s", err)
    break
  }
  continue
}
break
```

I can't say I see the benefit.