CLEANUP: pattern: use calloc() rather than malloc for structures

It's particularly difficult to make sure that the various pattern
structures are properly initialized given that they can be allocated
at multiple places and systematically via malloc() instead of calloc(),
thus not even leaving the possibility of default values. Let's adjust
a few of them.
diff --git a/src/pattern.c b/src/pattern.c
index f1accdc..3d8226f 100644
--- a/src/pattern.c
+++ b/src/pattern.c
@@ -1825,7 +1825,7 @@
 {
 	struct pat_ref *ref;
 
-	ref = malloc(sizeof(*ref));
+	ref = calloc(1, sizeof(*ref));
 	if (!ref)
 		return NULL;
 
@@ -1836,8 +1836,6 @@
 			return NULL;
 		}
 	}
-	else
-		ref->display = NULL;
 
 	ref->reference = strdup(reference);
 	if (!ref->reference) {
@@ -1868,7 +1866,7 @@
 {
 	struct pat_ref *ref;
 
-	ref = malloc(sizeof(*ref));
+	ref = calloc(1, sizeof(*ref));
 	if (!ref)
 		return NULL;
 
@@ -1879,8 +1877,6 @@
 			return NULL;
 		}
 	}
-	else
-		ref->display = NULL;
 
 	ref->reference = NULL;
 	ref->flags = flags;
@@ -1901,7 +1897,7 @@
 {
 	struct pat_ref_elt *elt;
 
-	elt = malloc(sizeof(*elt));
+	elt = calloc(1, sizeof(*elt));
 	if (!elt)
 		goto fail;
 
@@ -1916,8 +1912,6 @@
 		if (!elt->sample)
 			goto fail;
 	}
-	else
-		elt->sample = NULL;
 
 	LIST_INIT(&elt->back_refs);
 	LIST_ADDQ(&ref->head, &elt->list);
@@ -2180,7 +2174,7 @@
 		*reuse = 0;
 
 	/* Memory and initialization of the chain element. */
-	list = malloc(sizeof(*list));
+	list = calloc(1, sizeof(*list));
 	if (!list) {
 		memprintf(err, "out of memory");
 		return NULL;
@@ -2206,7 +2200,7 @@
 	/* If no similar expr was found, we create new expr. */
 	if (!expr) {
 		/* Get a lot of memory for the expr struct. */
-		expr = malloc(sizeof(*expr));
+		expr = calloc(1, sizeof(*expr));
 		if (!expr) {
 			free(list);
 			memprintf(err, "out of memory");