codegen: Point JIT debug info at the installed source files
The file names in our debug info are the paths recorded when the code was
loaded. For the system image those refer to the build tree: Base files are
relative to its `base` directory, the Compiler is relative to that as well,
and stdlibs are absolute paths on the build machine. Combined with a
compilation directory of ".", debuggers cannot find any of these sources
without manual `directory`/`substitute-path` setup.
When JIT-compiling we know where the sources are installed, so have Base
register the same mapping that `find_source_file` and `fixup_stdlib_path`
apply when displaying paths, and use it to emit absolute file names with a
proper directory. Relative names are only resolved for code from Base and
Core, as user code can pick arbitrary names (e.g. with `include_string`).
Code emitted for images keeps the recorded paths, since images can be
relocated.
Assisted-by: Claude Code (Opus 5.5)