MEDIUM: map: merge identical maps

This patch permits to use the same struct pattern for two indentical maps.
This permits to preserve memory, and permits to update only one
"struct pattern" when the dynamic map update is supported.
diff --git a/include/types/map.h b/include/types/map.h
index 68f1a36..4463541 100644
--- a/include/types/map.h
+++ b/include/types/map.h
@@ -59,7 +59,8 @@
 	struct sample_conv *conv;      /* original converter descriptor */
 	int (*parse)(const char *text, /* The function that can parse the output value */
 	             struct sample_storage *smp);
-	struct pattern_expr pat;       /* the pattern matching associated to the map */
+	struct pattern_expr *pat;      /* the pattern matching associated to the map */
+	int do_free;                   /* set if <pat> is the orignal pat and must be freed */
 	char *default_value;           /* a copy of default value. This copy is
 	                                  useful if the type is str */
 	struct sample_storage *def;    /* contain the default value */