Walk all source files under root whose extension is in extensions,
compute complexity metrics via rust-code-analysis, and annotate the
file-level nodes in the graph (File nodes, and — before the Rust
module→file collapse — file-backed Module nodes with line == None).
Returns the number of nodes annotated.