Add instrumentation for use by the (upcoming) feature-specific profiler

These commits add instrumentation to a number of language and standard library features. This instrumentation allows a profiling tool to report the time spent in each feature, broken up by feature instance. This is similar to the contract system instrumentation used by the contract profiler.

The instrumentation is mostly in the form of "latent continuation marks", which are syntax properties that can be selectively turned into continuation marks at compile-time, and have no run-time overhead by default.

Different commits affect different features. If possible, I'd like review from @mflatt, @rfindler, @samth and @shekari / @takikawa, depending on the commit.

After this review, the feature-specific profiler itself will also be ready to merge. I'm still debating whether to include it in the main Racket repo (like the contract profiler) or as a separate package (like the optimization coach). I'd like opinions on that.