Added incrByFloat and hincrByFloat commands (binary and standard) + support for pipelining and sharding
merging with master branch. Required refactoring of Pipeline code.
When writing a negative sign the write(char) method goes directly to the output stream and by-passes the internal RedisOutputStream buffer causing random corruption of the output.  Casting the char to a byte ensures write(byte) is called which will properly buffer the output.
Added support for nested lists, and longs in lists.
Fixed the ordering of arguments in assertions for a couple of older tests.
BinaryJedis.multi(TransactionBlock) should not call discard when exception occurred

* In BinaryJedis.multi(TransactionBlock), multi & exec already fired before exception occured, so sending discard has no effect, and made another error
** add unit test (error inside TransactionBlock)
*** Transaction with error - Redis discards transaction automatically (execabort)
*** Transaction with error - Redis doesn't roll back (force to execute all)
JedisPool / JedisSentinelPool resets returning object's state (watched,
multi)

* BinaryClient / BinaryJedis : added feature to reset its state
(watched, multi)
* JedisPool / JedisSentinelPool : calls new feature (reset state) when
Jedis object returns to pool
* Unit Test included
Fix BinaryJedis.eval() method bug (argument)

* append unit test for BinaryJedis
Allow safe multi-threaded access to JedisPubSub

If Thread A calls a subscribe method on Jedis it will block on a socket read
call waiting for messages or subscription notifications.  Thread B is now free
to call additional methods on JedisPubSub to change the current subscriptions
that thread A is waiting for.  Essentially Thread A will do reads on the
socket and Thread B will do writes.

An issue occurs in that while Thread A is doing reads, in the
getObjectMultiBulkReply() method there is an implicit flush() call.  This
means both Thread A and Thread B may do a write to the socket.  Under this
situation if Thread A does a flush while Thread B is writing the internal
buffer will be corrupted.  The fix is to make thread A never call flush().
This allows Thread A to be solely reads and Thread B to be solely writes.

Additionally since Thread B is sending commands, the internal pipeline count
is incremented and never decremented.  So when Thread A terminates it's read
it resets the pipeline count.
Merge branch 'fix-eval-argument-in-binary-jedis' of github.com:HeartSaVioR/jedis into HeartSaVioR-fix-eval-argument-in-binary-jedis
Apply Sentinel runtime configuration API introduced on Redis 2.8.4

* Implements new sentinel commands (failover, monitor, remove, set) 
* unit test included
** added 2 redis-server and 1 sentinel for failover test
* with some refactoring
** SentinelCommands : refactor to have interface
** HostAndPortUtil : same format to cluster setup
make sentinel set command unit test stronger
Corrected documentation for Jedis.get(), it returns a Java null, not (nil)
Merge pull request #513 from mayank-kakodkar/master

Corrected documentation for Jedis.get(), it returns a Java null, not (nil)
Change zadd parameter order to allow duplicated scoremembers but not members
Merge pull request #515 from xetorthio/zadd_scoremembers

Change zadd parameter order to allow duplicated scoremembers but not members
Fix ControlCommandsTest to don't hang from monitor test because of timing issue

* In monitor command test, input thread waits for monitor thread to monitor
** Monitor command test sometimes hang when input thread run earlier than monitor thread.
Merge pull request #516 from HeartSaVioR/fix-timing-issues-with-monitor-test

Fix ControlCommandsTest to don't hang from monitor test because of timing issue
Fix typo in cluster snippet from README
Merge branch 'reset-state-of-jedis-client' of github.com:HeartSaVioR/jedis into HeartSaVioR-reset-state-of-jedis-client