Added incrByFloat and hincrByFloat commands (binary and standard) + support for pipelining and sharding
merging with master branch. Required refactoring of Pipeline code.
Refactor Pipeline / Transaction to consume responses based on their requests, not rely on pipelinedCommands

* remove pipelinedCommands field at Connection class
** it was a risky state value
*** it was under 0 or over 0(though all commands are executed) while some situation
* remove Connection.getAll(), Connection.getAll(int except)
Let BinaryJedis.multi() consumes "OK" message

* Transaction doesn't have to consume "multi"'s response
Implemented Client.getMany(int count) to remove multiple flush while getting responses at once
Shadow client field from PipelineBlock and TransactionBlock

* it prevent from user accessing BinaryClient, while it is not treated to pipeline command
** it could make troubles when reading responses
Remove unused discard() method
Remove all @Deprecated things about *scan

* remove all @Deprecated methods about *scan
* rename ScanResult.getStringCursor() to ScanResult.getCursor()
** its original name
* let unit tests follow this change
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
Remove deprecated pexpire(key, int) methods
Fixed #595:

The byte version of pipeline.getrange should returns byte[] instead of Long.

TESTED:
export TEST=PipeliningTest
make test
Indent fix
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