MINOR: trace: support a default callback for the source

It becomes apparent that most traces will use a single trace pretty
print callback, so let's allow the trace source to declare a default
one so that it can be omitted from trace calls, and will be used if
no other one is specified.
diff --git a/include/types/trace.h b/include/types/trace.h
index e43cb88..152cc8f 100644
--- a/include/types/trace.h
+++ b/include/types/trace.h
@@ -129,6 +129,9 @@
 	const char *desc;
 	const struct trace_event *known_events;
 	struct list source_link; // element in list of known trace sources
+	void (*default_cb)(enum trace_level level, uint64_t mask,
+	                   const struct trace_source *src, const struct ist where,
+	                   const void *a1, const void *a2, const void *a3, const void *a4);
 	uint32_t arg_def;        // argument definitions (sum of TRC_ARG{1..4}_*)
 	const struct trace_lockon_arg *lockon_args; // must be 4 entries if not NULL
 	/* trace configuration, adjusted by "trace <module>" on CLI */
diff --git a/src/trace.c b/src/trace.c
index 039bf3a..e8de89b 100644
--- a/src/trace.c
+++ b/src/trace.c
@@ -184,6 +184,9 @@
 	}
 	line[2] = ist("] ");
 
+	if (!cb)
+		cb = src->default_cb;
+
 	if (cb) {
 		/* decode function passed, we want to pre-fill the
 		 * buffer with the message and let the decode function