Use NewClient to create an ExtendedAgent that communicates with an ssh-agent process.
If the provided io.ReadWriter also implements io.Closer (such as a *net.UnixConn), the client will use a pipelined connection. This allows multiple goroutines to issue concurrent requests (like Sign or List) without waiting for previous responses to complete, improving performance.
If the transport does not implement io.Closer, the client falls back to a fully serialized mode where only one request can be in flight at a time.