CBSE-126 - clear links & timeouts before and after releasing conn
CBSE-126 - clear links & timeouts before and after releasing conn

THe new zstored / asynchronous connect()'ing feature introduced
code that didn't cleanup correctly in two places.

First, when a downstream was released (cproxy_release_downstream()),
the downstream should be de-linked before looping through
downstream_conns and repeatedly invoking
zstored_release_downstream_conn().  The reason is that
zstored_release_downstream_conn() calls cproxy_forward(), which might
recurse.

Secondly, when a downstream conn is zstored_release()'ed, the next
chosen waiting downstream needs to have its timeout cleared.
Otherwise, the (incorrectly) still-registered timeout "might" fire in
unexpected places, possibly leading to bug CBSE-126 situation,
although it's not a proven linkage.

Change-Id: Ib3fb8365a606a9a8260ac59a4e2d1dba00851d24
Reviewed-on: http://review.couchbase.org/14423
Reviewed-by: Bin Cui <ed18693fff32c00e22495f4877a3b901bed09041@gmail.com>
Tested-by: Steve Yen <ef850f73f7832052d3c6d9b5ddd3a1716d9a57f1@gmail.com>

membase/moxi,membase/moxi,couchbase/moxi,membase/moxi,membase/moxi,membase/moxi,membase/moxi,couchbase/moxi,couchbase/moxi,couchbase/moxi,couchbase/moxi,couchbase/moxi