futures: bug fix

The problem was in the handing of "lightweight continuations" used to
represent suspended computations, and in particular the handling
of continuation marks (such as the ones added by DrRacket's debugging
mode).

Unfortunately, I wasn't able to construct a simpler test case that
triggers the problem. I think the number of installed continuation marks
has to be just right, and there have to be some replacing marks, and
a lightweight continuaiton has to be captured at the right time
as a result of applying a previously captured continuation.

Closes PR 13427

Merge to v5.3.2
Gracefully handle the case where the token stream just contains the END token and an error occurs.
fix missing argument
  closes PR 13429

Merge to 5.3.2
Fix XREPL logging printer to handle new logger name field.

Merge to 5.3.2.
Fix parsing of `maybe-optimize` result.

Merge to 5.3.2.
Abstract out OC sandboxing.
Log output generated when OC expands/runs programs.

To be consistent with Check Syntax.
Abstract out right file filtering.
Log functions too big to be inlined.

Patch from Matthew.
First stab at hooking the profiler up to OC.

Profiling is done from inside the eval, to minimize noise.

Use samplers directly, to get access to the profiler's data structures.
Put sandbox management in its own file.

To avoid circular dependencies.
Refactoring.
Only keep profile reports from the relevant file.
Propagate profile information to inlining analysis.
Prune profile info to only keep hot functions.
Keep profile entries that come from other files.

Otherwise, hot function set is only populated from the current file.
Rethink profiler integration.

Requires the program to manually call the profiler. This dumps the results in
a separate file.
When we have profiling information, prune inlining reports about cold code.
Refactoring.
Keep TR and mzc logs separate.

Simplifies post-processing.