Fix benchmarks to not use `collection-path`.
Make `profile-lib` a single-collection package.
Clarify the data definitions used by drracket for stacktraces.

In particular, it is not the same format as errortrace uses internally.
Remove dead code.

Not only is `st-mark-bindings` documented to always return `null`,
but DrRacket does not use `make-st-mark` to insert bindings in the
first place.
Remove one-armed `if` handling.

This is no longer possible since #%kernel `if` requires two arms.
Required identifiers cannot error on use.
Implement statistical errortrace-based profiling.

Add a mode to the profiler to use continuation marks inserted
by the errortrace annotator instead of the runtime.

Split `syntax/source-syntax` out from Typed Racket as a separate package,
and use it to give better names for errortrace stack frames.
Use caching to speed it up substantially when called repeatedly (as
errortrace does).

Also, document (internally) the format used by errortrace marks.
Allow clients of `recover-source-syntax` to ask for early traversal.
Show expressions in errortrace profiles, instead of just symbols.

Since profile nodes report the time spent in, e.g., an entire call
expression (including argument evaluation), and not just in the body of
the operator, showing only the operator in the profile is misleading.
Update profile docs to be consistent with output of errortrace mode.