MINOR: global: define diagnostic mode of execution

Define MODE_DIAG which is used to run haproxy in diagnostic mode. This
mode is used to output extra warnings about possible configuration
blunder or sub-optimal usage. It can be activated with argument '-dD'.

A new output function ha_diag_warning is implemented reserved for
diagnostic output. It serves to standardize the format of diagnostic
messages.

A macro HA_DIAG_WARN_COND is also available to automatically check if
diagnostic mode is on before executing the diagnostic check.
diff --git a/src/log.c b/src/log.c
index e002c48..292eb58 100644
--- a/src/log.c
+++ b/src/log.c
@@ -1134,6 +1134,42 @@
 }
 
 /*
+ * Variant of _ha_diag_warning with va_list.
+ * Use it only if MODE_DIAG has been previously checked.
+ */
+void _ha_vdiag_warning(const char *fmt, va_list argp)
+{
+	print_message("DIAG/WARNING", fmt, argp);
+}
+
+/*
+ * Output a diagnostic warning.
+ * Use it only if MODE_DIAG has been previously checked.
+ */
+void _ha_diag_warning(const char *fmt, ...)
+{
+	va_list argp;
+
+	va_start(argp, fmt);
+	_ha_vdiag_warning(fmt, argp);
+	va_end(argp);
+}
+
+/*
+ * Output a diagnostic warning. Do nothing of MODE_DIAG is not on.
+ */
+void ha_diag_warning(const char *fmt, ...)
+{
+	va_list argp;
+
+	if (global.mode & MODE_DIAG) {
+		va_start(argp, fmt);
+		_ha_vdiag_warning(fmt, argp);
+		va_end(argp);
+	}
+}
+
+/*
  * Displays the message on stderr with the date and pid.
  */
 void ha_notice(const char *fmt, ...)