MIGRATE: retry one time on I/O error.
Now that we cache connections, a retry attempt makes sure that the operation don't fail just because there is an existing connection error on the socket, like the other end closing the connection.
Unfortunately this condition is not detectable using getsockopt(SO_ERROR), so the only option left is to retry.
We don't retry on timeouts.
Pipelined multiple keys MIGRATE.
Do not migrate already expired keys.
Make changes of PR #5154 hopefully simpler.
migrate: fix mismatch of RESTORE reply when some keys have expired.