Add DependencyResolver protocol and IndexResult to base.py, move
call_graph.py to languages/python/, and use factory method in optimizer
instead of is_python() gating.
Add cross-file edge detection to IndexResult, replace tree sub-entries
with flat per-file dependency labels using plain language, and add a
post-indexing summary panel showing per-function dependency stats.
Replace the simple progress bar with a Live + Tree + Panel display
that shows files being analyzed, call edges discovered, cache hits,
and summary stats during call graph indexing.