[MEDIUM] stick_table: don't overwrite data when storing an entry

Till now sticky sessions only held server IDs. Now there are other
data types so it is not acceptable anymore to overwrite the server ID
when writing something. The server ID must then only be written from
the caller when appropriate. Doing this has also led to separate
lookup and storage.
diff --git a/include/proto/stick_table.h b/include/proto/stick_table.h
index 01cd391..4200d97 100644
--- a/include/proto/stick_table.h
+++ b/include/proto/stick_table.h
@@ -31,8 +31,9 @@
 
 int stktable_init(struct stktable *t);
 int stktable_parse_type(char **args, int *idx, unsigned long *type, size_t *key_size);
-int stktable_store(struct stktable *t, struct stksess *ts, int sid);
-struct stksess *stktable_lookup(struct stktable *t, struct stktable_key *key);
+struct stksess *stktable_store(struct stktable *t, struct stksess *ts);
+struct stksess *stktable_lookup(struct stktable *t, struct stksess *ts);
+struct stksess *stktable_lookup_key(struct stktable *t, struct stktable_key *key);
 struct stktable_key *stktable_fetch_key(struct proxy *px, struct session *l4,
 					void *l7, int dir, struct pattern_expr *expr,
 					unsigned long table_type);