Redis migration

This is the code for the redis migration backend.

It takes an old and a new backend, and tries to copy existing keys to the new database before answering anything.
I personally find the form I'm using far more readable (it's one line to catch errors, and not 4. I want to actually move all the other forms in the code to this new one. I know this means we are returning something different from the function, but here we're never reading the values returned by these operations to redis since this is callback-based, so I find the argumentation invalid.

I would rather keep things readable rather than do defensive programming (e.g we are consenting adults and we know what we're doing, python like).