Various fixes to MIGRATE with multiple keys.
Various fixes to MIGRATE with multiple keys.

In issue #3016 Kevin McGehee identified multiple very serious issues in
the new implementation of MIGRATE. This commit attempts to restructure
the code in oder to avoid mistakes, an analysis of the new
implementation is in progress in order to check for possible edge cases.

xuguruogu/redis,janekmi/redis,xuguruogu/redis,4396/redis,pedigree/redis,janekmi/redis,janekmi/redis,pedigree/redis,pedigree/redis,4396/redis,pedigree/redis,xuguruogu/redis,4396/redis,xuguruogu/redis,janekmi/redis,4396/redis