Chunks .ex/.exs files by walking the quoted AST for
defmodule/def/defmacro boundaries, using Code.string_to_quoted/2
in-process (no subprocess).
Ported from extract_chunks.exs in the original Python-orchestrated
pipeline, with two deliberate fixes over the original: nested
defmodule names are qualified with their outer module path (the
original discards the outer context, so a Nested module inside
Foo.Bar gets chunked under the bare name "Nested" instead of
"Foo.Bar.Nested"), and when-guarded def/defp/defmacro/defmacrop heads
are unwrapped before extracting the function name and end line (the
original's {name, _, _args} match against the raw head binds name to
the literal atom :when for any guarded clause, and its end-line scan
only covers the trailing keyword list, not the guard). Module chunks
themselves are still skipped, and symbols still omit arity, matching the
original — see docs/phase0-parity-report.md for the full comparison.