BUG/MEDIUM: checks: make sure the warmup task takes the server lock

The server warmup task is used when a server uses the "slowstart"
parameter. This task affects the server's weight and maxconn, and may
dequeue pending connections from the queue. This must be done under
the server's lock, which was not the case.

This must be backported to 1.9 and 1.8.
diff --git a/src/checks.c b/src/checks.c
index 76bd8e3..aeb3b79 100644
--- a/src/checks.c
+++ b/src/checks.c
@@ -1488,12 +1488,16 @@
 	    (s->next_state != SRV_ST_STARTING))
 		return t;
 
+	HA_SPIN_LOCK(SERVER_LOCK, &s->lock);
+
 	/* recalculate the weights and update the state */
 	server_recalc_eweight(s, 1);
 
 	/* probably that we can refill this server with a bit more connections */
 	pendconn_grab_from_px(s);
 
+	HA_SPIN_UNLOCK(SERVER_LOCK, &s->lock);
+
 	/* get back there in 1 second or 1/20th of the slowstart interval,
 	 * whichever is greater, resulting in small 5% steps.
 	 */