- test_hooks.h: drop the #include of jemalloc_preamble.h. preamble
pulls test_hooks.h, and test_hooks.h needs nothing from preamble.
- edata.h: drop the #include of prof_types.h in favor of forward
declarations of prof_tctx_t and prof_recent_t (used only as pointer
types). prof_structs.h can then drop its #include of edata.h,
severing the edata <-> prof_types coupling.
Header files are now self-contained, which makes the relationships
between the files clearer, and crucially allows LSP tools like `clangd`
to function correctly in all of our header files. I have verified that
the headers are self-contained (aside from the various Windows shims) by
compiling them as if they were C files – in a follow-up commit I plan to
add this to CI to ensure we don't regress on this front.
"Hooks" is really the best name for the module that will contain the publicly
exposed hooks. So lets rename the current "hooks" module (that hook external
dependencies, for reentrancy testing) to "test_hooks".