BUG/MINOR: state-file: do not store duplicates in the global tree

The global state file tree isn't configured for unique keys, so if an
entry appears multiple times, e.g. due to a bogus script that concatenates
entries multiple times, this will needlessly eat memory. Let's just drop
duplicates.

This should be backported to 2.1.
diff --git a/src/server.c b/src/server.c
index 718ca1c..466da44 100644
--- a/src/server.c
+++ b/src/server.c
@@ -75,7 +75,7 @@
 };
 
 /* tree where global state_file is loaded */
-struct eb_root state_file = EB_ROOT;
+struct eb_root state_file = EB_ROOT_UNIQUE;
 
 int srv_downtime(const struct server *s)
 {
@@ -3632,7 +3632,12 @@
 				goto nextline;
 			}
 			memcpy(st->name_name.key, trash.area, trash.data + 1);
-			ebst_insert(&state_file, &st->name_name);
+			if (ebst_insert(&state_file, &st->name_name) != &st->name_name) {
+				/* this is a duplicate key, probably a hand-crafted file,
+				 * drop it!
+				 */
+				goto nextline;
+			}
 
 			/* save line */
 			st->line = line;