Pipeline and transaction can handle responses on their own status (remove Connection.pipelinedCommands)

Jedis instance is a bit stateful, and I think Connection.pipelinedCommands field should be used only Transaction and Pipeline.
And currently Connection.pipelinedCommands with Connection.getAll() could make potential bugs because this field's value is below / over 0 when it is expected to 0.

ShardedJedisPipeline is handling responses relying on his own status.
(when getClient() called, he keeps it for request)
I think it is more natural, so I modified Pipeline and Transaction to handle responses on their own status.
And remove Connection.pipelinedCommands and Connection.getAll().

Before applying this PR, we have one things to resolve.
TransactionBlock and PipelineBlock can use BinaryClient directly, it can cause problems with my PR.
I'll make it modified to use Transaction / Pipeline in TransactionBlock & PipelineBlock if we agree to remove.