Added incrByFloat and hincrByFloat commands (binary and standard) + support for pipelining and sharding
merging with master branch. Required refactoring of Pipeline code.
Implements Closeable to Pooled Jedis & ShardedJedis

* Implement Closeable from Jedis, ShardedJedis with Pooled
** resources from JedisPool, JedisSentinelPool, ShardedJedis, ShardedJedisPool
* Connection class : check whether Jedis Connection is broken
** when it's time to throw JedisConnectionException, mark Connection to broken
add a returnBrokenResource method, this way we can throw away broken ShardedJedis objects (e.g. due to timeouts on one shard)
Expose *SCAN commands to BinaryJedis

* method signatures are a bit similar to Jedis's *SCAN
** but it takes parameters to byte[] instead of String
* ScanParams : allow match pattern with byte[]
* ScanResult : add method to get cursor with byte[] type
* *SCAN for BinaryJedis unit tests included
Change ScanResult's cursor type to byte[]

* It's less probabilities to conversion with byte[] <-> ?
Change method naming : ScanResult.getBinaryCursor to ScanResult.getCursorAsBytes
Accept long parameter for pexpire
Append 'package' command in Makefile
Apply PF* commands to JedisCluster, ShardedJedis

* Apply PF* commands to JedisCluster, ShardedJedis
* PF* commands to interface
** pfadd / pfcount : JedisCommands
** pfmerge : MultiKeyCommands
Apply binary PF* commands to BinaryJedis, BinaryShardedJedis

* Apply binary PF* commands to BinaryJedis, BinaryShardedJedis
* binary PF* commands to interface
** pfadd / pfcount : BinaryJedisCommands
** pfmerge : MultiKeyBinaryCommands
Apply PF* (string, binary) commands to Pipeline

* Apply PF* (string, binary) commands to Pipeline
* PF* Pipeline (string, binary) commands to interface
** pfadd / pfcount : BinaryRedisPipeline, RedisPipeline
** pfmerge : MultiKeyBinaryRedisPipeline, MultiKeyCommandsPipeline
Merge branch 'master' into hll-resurrect-afefb71e57b0258a52b465b2b4e57c132aef4db9

it resurrects afefb71e57b0258a52b465b2b4e57c132aef4db9

Conflicts:
	src/main/java/redis/clients/jedis/BinaryClient.java
	src/main/java/redis/clients/jedis/Jedis.java
	src/test/java/redis/clients/jedis/tests/commands/HyperLogLogCommandsTest.java
Revert "Revert "Add support for HLL""

This reverts commit ac53759f9706b52184963e98af11d2e44bfb1297.

Sorry for double reverting, I should revert "merged commit", not origin commit

Conflicts:
	src/main/java/redis/clients/jedis/BinaryClient.java
	src/main/java/redis/clients/jedis/Jedis.java
	src/test/java/redis/clients/jedis/tests/commands/HyperLogLogCommandsTest.java
fix - ScanParams should be return this reference

build pattern for chain code style
Fix Pipeline NPE or sth with multi

* followings are now throwing JedisDataException: it was uncontrolled or controlled by Redis itself
** exec without multi
** discard without multi
** multi within multi
* updates unit test

actually Redis returns ERR and we can pick, but Pipeline + multi has some complex sequence
so it can just throw NPE without ERR
Add support for pfcount with multiple keys
Move pfcount(keys) method to multikey interfaces
Added pfcount(keys) to BinaryJedis interfaces
Merge pull request #627 from aloksingh/hll-pfcount-with-multiple-keys

Add support for pfcount with multiple keys