buildctl: Provide --wait-for-ready option
Added --wait-for-ready timeout to buildctl's global options. See below
for behavior.
Implemented a WithWaitForReady client option method that blocks remote
calls should the connection ever enter a transient failure state and
waits up to the given duration until a connection is ready again before
retrying the call. Note that if data has been written to the connection,
retries are not attempted. See grpc.WaitForReady documentation for
details.
Also note this option only applies to unary calls other than Solve as
the timeout is applied to the context of the call and the latter is too
likely to exceed a given timeout.