[MEDIUM] stick_table: move the server ID to a generic data type

The server ID is now stored just as any other data type. It is only
allocated if needed and is manipulated just like the other ones.
diff --git a/include/types/stick_table.h b/include/types/stick_table.h
index 3e27b8f..843f5d7 100644
--- a/include/types/stick_table.h
+++ b/include/types/stick_table.h
@@ -41,6 +41,7 @@
 
 /* The types of extra data we can store in a stick table */
 enum {
+	STKTABLE_DT_SERVER_ID,    /* the server ID to use with this session if > 0 */
 	STKTABLE_DT_CONN_CUM,     /* cumulated number of connections */
 	STKTABLE_DATA_TYPES       /* Number of data types, must always be last */
 };
@@ -48,6 +49,7 @@
 /* stick_table extra data. This is mainly used for casting or size computation */
 union stktable_data {
 	unsigned int conn_cum;
+	int server_id;
 };
 
 /* known data types */
@@ -72,7 +74,6 @@
  * keys and variable-sized data without making use of intermediate pointers.
  */
 struct stksess {
-	int sid;                  /* id of server to use for this session */
 	unsigned int expire;      /* session expiration date */
 	struct eb32_node exp;     /* ebtree node used to hold the session in expiration tree */
 	struct ebmb_node key;     /* ebtree node used to hold the session in table */