MB-11226 Fix timeout retry handling for upr client

The gen_server:call method is used to obtain a mutation
from the upr client. If a mutation is not readily available,
the upr client will add caller as a waiter and reply back when
mutation is received from the upr server. The timeout retry logic
calls gen_server:call again if it times out and thereby trying to
add duplicate waiter for the same stream. We do not have a mechanism
to atomically remove the waiter while the caller times out.

Fixed the retry mechanism by using a simple message request response
pattern and retry by just waiting for response message.

Change-Id: I477ae11ea7cbdc8cd3f897ae2c0207a5c2791c6f
Reviewed-on: http://review.couchbase.org/37673
Tested-by: Volker Mische <volker.mische@gmail.com>
Reviewed-by: Volker Mische <volker.mische@gmail.com>