Supports Multi Key commands to JedisCluster

Hello.

As supporting Redis Cluster work, I implemented Cluster multi key commands based on previous interfaces.

During implementing, I found that some commands are fine with Redis, but maybe some commands are not fine with Redis Cluster.
(Actually there're no documentation from Redis describing cluster-able commands.)

So I removed some suspicious commands from interface, and introduced new interfaces for Jedis Cluster.
(Please let me know when you think something is wrong.)

Below is the commands I removed from previous interfaces.

BinaryJedisClusterCommands (copied from BinaryCommands)

- List<byte[]> blpop(byte[] arg);
- List<byte[]> brpop(byte[] arg);
- Long move(byte[] key, int dbIndex);

MultiKeyBinaryJedisClusterCommands (copied from MultiKeyBinaryCommands)

- List<byte[]> blpop(byte[]... args);
- List<byte[]> brpop(byte[]... args);
- Set<byte[]> keys(byte[] pattern);
- String watch(byte[]... keys);
- String unwatch();
- byte[] randomBinaryKey();

JedisClusterCommands (copied from JedisCommands)

- List<String> blpop(String arg);
- List<String> brpop(String arg);
- Long move(String key, int dbIndex);
- ScanResult<Map.Entry<String, String>> hscan(final String key, int cursor);
- ScanResult<String> sscan(final String key, int cursor);
- ScanResult<Tuple> zscan(final String key, int cursor);

MultiKeyJedisClusterCommands (copied from MultiKeyCommands)

- String watch(String... keys);
- String unwatch();
- String randomKey();
- ScanResult<String> scan(int cursor);
- ScanResult<String> scan(final String cursor);
- Set<String> keys(String pattern);
- List<String> blpop(String... args);
- List<String> brpop(String... args);

And I introduce some utils and exception, you can find it from commit log.

Please review and comment so that this PR goes to cluster-revised.
Thanks!