MEDIUM: check: server states and weight propagation re-work

The server state and weight was reworked to handle
"pending" values updated by checks/CLI/LUA/agent.
These values are commited to be propagated to the
LB stack.

In further dev related to multi-thread, the commit
will be handled into a sync point.

Pending values are named using the prefix 'next_'
Current values used by the LB stack are named 'cur_'
diff --git a/src/stream.c b/src/stream.c
index d6c1229..a2c83b0 100644
--- a/src/stream.c
+++ b/src/stream.c
@@ -696,7 +696,7 @@
 	 */
 	if (objt_server(s->target) &&
 	    (s->be->options & PR_O_REDISP) && !(s->flags & SF_FORCE_PRST) &&
-	    ((__objt_server(s->target)->state < SRV_ST_RUNNING) ||
+	    ((__objt_server(s->target)->cur_state < SRV_ST_RUNNING) ||
 	     (((s->be->redispatch_after > 0) &&
 	       ((s->be->conn_retries - si->conn_retries) %
 	        s->be->redispatch_after == 0)) ||
@@ -1297,7 +1297,7 @@
 			if (ret) {
 				struct server *srv = rule->srv.ptr;
 
-				if ((srv->state != SRV_ST_STOPPED) ||
+				if ((srv->cur_state != SRV_ST_STOPPED) ||
 				    (px->options & PR_O_PERSIST) ||
 				    (s->flags & SF_FORCE_PRST)) {
 					s->flags |= SF_DIRECT | SF_ASSIGNED;
@@ -1383,7 +1383,7 @@
 							struct server *srv;
 
 							srv = container_of(node, struct server, conf.id);
-							if ((srv->state != SRV_ST_STOPPED) ||
+							if ((srv->cur_state != SRV_ST_STOPPED) ||
 							    (px->options & PR_O_PERSIST) ||
 							    (s->flags & SF_FORCE_PRST)) {
 								s->flags |= SF_DIRECT | SF_ASSIGNED;