support eval on redis cluster if all keys point to the same key hash slot

This patch allows eval to work the same way other single key operations work, where all the work is done against a connection from a single key hash slot. Multiple keys are supported only if all the keys are on the same key hash slot. 

Example:

```
script = 'return {KEYS[1],KEYS[2],ARGV[1],ARGV[2]}'
result = r.eval(script, 2, 'A{foo}', 'B{foo}', 'arg1', 'arg2')
```

This is a revised patch from earlier patch request that I retracted:  https://github.com/Grokzen/redis-py-cluster/pull/5
Please separate this new decorator into its own group and write a small comment what the commands in the groups is supposed to do compared to the others. Just like https://github.com/happybits/redis-py-cluster/blob/eval/rediscluster/rediscluster.py#L852-L853