Extend the flow graph with a tracing facility

Each <computation>, <temporary> and <object-reference> has a unique
identifier (computation-id or temporary-id), not valid across library
contexts.

The global variable *computation-tracer* is called for each interesting
modification of a slot in a flow graph instance.

The graph-class definer macro was extended with "tracing" slots,
the slots setter is wrapped to call maybe-trace.
Other setters (of non-graph-class classes) were modified to call
maybe-trace manually, especially next-computation-setter for various
<computation> subclasses.
Implement a structured output interface for the debug backend.
To show us some nicely formatted information about the flow graph.

The two sealed generics which are available are
get-structured-output and structured-output. The latter is more useful
Add dfmc-management hooks for live visualization
remove useless comments
Add tracing to dfmc-optimization passes

Extended the already existing system with logging via a callback function.
While being there, doing some side effects in inlining to make the
visualization happy.
Add dfmc tracing commands to environment

This makes use of dylan-foundry's serialization library
(which can serialize to json or sexpressions)
Maintain visualization flags for projects