Reconnect services when they fail.
Reconnect takes some
MakeService and transforms it into a
Service. It then attempts to lazily connect and
reconnect on failure. The
Reconnect service becomes unavailable
when the inner
MakeService::poll_ready returns an error. When the
connection future returned from
MakeService::call fails this will be
returned in the next call to
Reconnect::call. This allows the user to
call the service again even if the inner
MakeService was unable to
connect on the last call.