CBQE-2288:moving pyupr to upr_bin_client

Primary motivation is to use same upr client in both pyupr and testrunner.
This way api changes are available in both without duplicating work.
Since we are using the mc_bin_client, the upr_bin_client is designed to work in
a similar way.

This client provides a stream class to help streaming mutations.
A stream object can be used iterate through mutations and detect bad seqno.
It also helps reduced amount of code needed to read entire stream and
inspect what has been read.

ie...

stream = self.upr_client.stream_req(0, 0, 0, end_seqno, 0)

assert stream.status == SUCCESS

responses = stream.run()

assert len(filter(lambda r: r['opcode']==CMD_MUTATION, responses)) == 5
assert len(filter(lambda r: r['opcode']==CMD_DELETION, responses)) == 5
assert stream.last_by_seqno == 15

This client also handles op responses internally to reduce
amount of code needed to make requests.

lastly being built on top of mc_bin_client allows pyupr to inherit a larger
set of mc operations as well.

Change-Id: Ied785d2b600293222377da1b545d7f095e7bfc65