Initial commit for ASKING logic
Don't NULL out the original slot on MOVED error

There is no reason to NULL out the originally requested slot
when we get a MOVED error, because all we really know is that
the data (at slot N) that we're requesting is somewhere else.

Instead, just update the node mapping for the destination MOVED
slot, if it has changed.  The source mapping will change organically
as we send more requests.
Remove options, unsed variable

Remove distribution options for things like MGET/MSET as they
are handled differently.

Remove an unsed variable in our command delivery process
Initial commit of save like commands

For commands like SAVE, BGSAVE, etc we need to change the
semantics from how you would call them directly, given that
we're communicating with multiple redis cluster nodes.

Each of these commands can be called in one of two ways.

1)  Pass a single argument, which will be treated as a key,
    and the command will be executed against the node where
    we believe that key would live.

2)  Pass a host and port, and as long as we know about this node
    the command will be forwarded there.