MINOR: queue: use a distinct variable for the assigned server and the queue

The pendconn struct uses ->px and ->srv to designate where the element is
queued. There is something confusing regarding threads though, because we
have to lock the appropriate queue before inserting/removing elements, and
this queue may only be determined by looking at ->srv (if it's not NULL
it's the server, otherwise use the proxy). But pendconn_grab_from_px() and
pendconn_process_next_strm() both assign this ->srv field, making it
complicated to know what queue to lock before manipulating the element,
which is exactly why we have the pendconn_lock in the first place.

This commit introduces pendconn->target which is the target server that
the two aforementioned functions will set when assigning the server.
Thanks to this, the server pointer may always be relied on to determine
what queue to use.
diff --git a/include/types/queue.h b/include/types/queue.h
index 42dbbd0..1f72a31 100644
--- a/include/types/queue.h
+++ b/include/types/queue.h
@@ -34,7 +34,8 @@
 	int            strm_flags; /* stream flags */
 	struct stream *strm;
 	struct proxy  *px;
-	struct server *srv;        /* the server we are waiting for, may be NULL */
+	struct server *srv;        /* the server we are waiting for, may be NULL if don't care */
+	struct server *target;     /* the server that was assigned, = srv except if srv==NULL */
 	struct list    list;       /* next pendconn */
 	__decl_hathreads(HA_SPINLOCK_T lock);
 };