* lisp/emacs-lisp/trace.el: Allow trace context args to be forms
This lifts the restriction of context arguments needing to be
functions, when calling trace functions from lisp code.
(trace--read-extra-args, trace-entry-message, trace-entry-message):
Move the output formatting already used for interactive context into
the trace-*-message functions for use in non-interactive cases as
well. Previously it was necessary for context functions to format
their output in a trace-aware manner, making a custom wrapper function
necessary to obtain well-formatted output even when the desired
context had an existing function.
(trace-function-internal, trace-make-advice): Move the generation of
an 'empty' context function into `trace-make-advice', which now takes
care of generating a function for any non-function context.
(trace-make-context): New function returning a context function for
an expression argument; extracted from `trace--read-extra-args'.
(trace--read-extra-args, trace-make-advice): Call it.