REORG/MEDIUM: server: split server state and flags in two different variables

Till now, the server's state and flags were all saved as a single bit
field. It causes some difficulties because we'd like to have an enum
for the state and separate flags.

This commit starts by splitting them in two distinct fields. The first
one is srv->state (with its counter-part srv->prev_state) which are now
enums, but which still contain bits (SRV_STF_*).

The flags now lie in their own field (srv->flags).

The function srv_is_usable() was updated to use the enum as input, since
it already used to deal only with the state.

Note that currently, the maintenance mode is still in the state for
simplicity, but it must move as well.
diff --git a/src/lb_fas.c b/src/lb_fas.c
index 7bd3d05..6027dac 100644
--- a/src/lb_fas.c
+++ b/src/lb_fas.c
@@ -87,7 +87,7 @@
 		/* server was already down */
 		goto out_update_backend;
 
-	if (srv->state & SRV_BACKUP) {
+	if (srv->flags & SRV_F_BACKUP) {
 		p->lbprm.tot_wbck -= srv->prev_eweight;
 		p->srv_bck--;
 
@@ -99,7 +99,7 @@
 			do {
 				srv2 = srv2->next;
 			} while (srv2 &&
-				 !((srv2->state & SRV_BACKUP) &&
+				 !((srv2->flags & SRV_F_BACKUP) &&
 				   srv_is_usable(srv2)));
 			p->lbprm.fbck = srv2;
 		}
@@ -139,7 +139,7 @@
 		/* server was already up */
 		goto out_update_backend;
 
-	if (srv->state & SRV_BACKUP) {
+	if (srv->flags & SRV_F_BACKUP) {
 		srv->lb_tree = &p->lbprm.fas.bck;
 		p->lbprm.tot_wbck += srv->eweight;
 		p->srv_bck++;
@@ -214,7 +214,7 @@
 	if (srv->lb_tree)
 		fas_dequeue_srv(srv);
 
-	if (srv->state & SRV_BACKUP) {
+	if (srv->flags & SRV_F_BACKUP) {
 		p->lbprm.tot_wbck += srv->eweight - srv->prev_eweight;
 		srv->lb_tree = &p->lbprm.fas.bck;
 	} else {
@@ -259,7 +259,7 @@
 	for (srv = p->srv; srv; srv = srv->next) {
 		if (!srv_is_usable(srv))
 			continue;
-		srv->lb_tree = (srv->state & SRV_BACKUP) ? &p->lbprm.fas.bck : &p->lbprm.fas.act;
+		srv->lb_tree = (srv->flags & SRV_F_BACKUP) ? &p->lbprm.fas.bck : &p->lbprm.fas.act;
 		fas_queue_srv(srv);
 	}
 }