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
Merge branch 'master' into pipeline-and-transaction-can-handle-responses-on-their-own-status

* it's broken with later features, resetState()
* fixed resetState() to make it work with this PR

Conflicts:
	src/main/java/redis/clients/jedis/BinaryJedis.java
	src/main/java/redis/clients/jedis/Connection.java
	src/main/java/redis/clients/jedis/Pipeline.java
	src/main/java/redis/clients/jedis/Transaction.java
	src/main/java/redis/clients/jedis/TransactionBlock.java
Fix indentation (code formatting...)
Merge branch 'pipeline-and-transaction-can-handle-responses-on-their-own-status' of https://github.com/HeartSaVioR/jedis into HeartSaVioR-pipeline-and-transaction-can-handle-responses-on-their-own-status