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