BUG/MEDIUM: state-file: do not allocate a full buffer for each server entry

Starting haproxy with a state file of 700k servers eats 11.2 GB of RAM
due to a mistake in the function that loads the strings into a tree: it
allocates a full buffer for each backend+server name instead of allocating
just the required string. By just fixing this we're down to 80 MB.

This should be backported to 2.1.
diff --git a/src/server.c b/src/server.c
index 3465db9..718ca1c 100644
--- a/src/server.c
+++ b/src/server.c
@@ -3627,11 +3627,11 @@
 			chunk_printf(&trash, "%s %s", bkname, srvname);
 
 			/* store line in tree */
-			st = calloc(1, sizeof(*st) + trash.size);
+			st = calloc(1, sizeof(*st) + trash.data + 1);
 			if (st == NULL) {
 				goto nextline;
 			}
-			memcpy(st->name_name.key, trash.area, trash.size);
+			memcpy(st->name_name.key, trash.area, trash.data + 1);
 			ebst_insert(&state_file, &st->name_name);
 
 			/* save line */