BUG/MEDIUM: connections: Don't increase curr_used_conns for shared connections.

In connect_server(), we want to increase curr_used_conns only if the
connection is new, or if it comes from an idle_pool, otherwise it means
the connection is already used by at least one another stream, and it is
already accounted for.
diff --git a/src/backend.c b/src/backend.c
index 952e371..51d954b 100644
--- a/src/backend.c
+++ b/src/backend.c
@@ -1150,6 +1150,7 @@
 	int reuse_orphan = 0;
 	int init_mux = 0;
 	int err;
+	int was_unused = 0;
 
 
 	/* This will catch some corner cases such as lying connections resulting from
@@ -1208,17 +1209,20 @@
 			     s->txn && (s->txn->flags & TX_NOT_FIRST)) &&
 			    srv->curr_idle_nb > 0) {
 				srv_conn = conn_backend_get(srv, 0);
+				was_unused = 1;
 			}
 			else if (srv->safe_conns &&
 			         ((s->txn && (s->txn->flags & TX_NOT_FIRST)) ||
 				  (s->be->options & PR_O_REUSE_MASK) >= PR_O_REUSE_AGGR) &&
 				 srv->curr_safe_nb > 0) {
 				srv_conn = conn_backend_get(srv, 1);
+				was_unused = 1;
 			}
 			else if (srv->idle_conns &&
 			         ((s->be->options & PR_O_REUSE_MASK) == PR_O_REUSE_ALWS) &&
 				 srv->curr_idle_nb > 0) {
 				srv_conn = conn_backend_get(srv, 0);
+				was_unused = 1;
 			}
 			/* If we've picked a connection from the pool, we now have to
 			 * detach it. We may have to get rid of the previous idle
@@ -1340,12 +1344,13 @@
 	/* no reuse or failed to reuse the connection above, pick a new one */
 	if (!srv_conn) {
 		srv_conn = conn_new();
+		was_unused = 1;
 		if (srv_conn)
 			srv_conn->target = s->target;
 		srv_cs = NULL;
 	}
 
-	if (srv_conn && srv) {
+	if (srv_conn && srv && was_unused) {
 		_HA_ATOMIC_ADD(&srv->curr_used_conns, 1);
 		/* It's ok not to do that atomically, we don't need an
 		 * exact max.