split out exception handling logic for moved keys

want to be able to share this logic in the pipeline context later when packing keys and issuing commands in parallel.
You can make a new command in RedisCluster class called asking that sends executes the asking command. It is better for reusability imo. Also i like this return to be more verbose because i have no idea what the intention of the return value [1] is unless i look inside pipeline class and figure out what [1] on execute() is.