EVAL/EVALSHA support

This PR ads support for `EVAL`/`EVALSHA`. Please note that this is a very early PR to get feedback as soon as possible. A lot of stuff needs to be done. I will add a bunch of questions inline.
Ugly hack. Probably the `Command`-interface needs a way to state if it needs a key or we probably move the validation code to the `Command` itself. What do you think?