[JuliaLowering] Add basic-block-local dominance analysis for Box optimization
Implement `optimize_captured_vars!` in scope_analysis.jl to identify
single-assigned local variables that are assigned before any control
flow or closure capture. These variables are marked as `is_always_defined`
and can avoid unnecessary `Core.Box` allocation during closure conversion.
The optimization is conservative: it only analyzes the first basic block
(before any control flow) to avoid the complexity of full CFG construction
and dominator tree computation.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>