fix(sheets): detect cross-sheet circular dependencies in recalc engine
The recalculation engine previously only detected circular references
within a single sheet. Cross-sheet cycles (e.g., Sheet1!A1 -> Sheet2!B1
-> Sheet1!A1) went undetected because each sheet's engine only knew
about its own cells' formulas.
Added crossSheetFormulaDeps and currentSheetName options to RecalcOptions.
When provided, buildFullGraph() traverses cross-sheet references via BFS,
adding their dependency edges to the graph so Kahn's algorithm can detect
cycles spanning multiple sheets. Cross-sheet formula cells participate in
cycle detection but are not evaluated locally.
Includes 13 tests covering: simple 2-sheet cycles, 3+ sheet chains,
valid (non-circular) cross-sheet refs, self-references with cross-sheet
options enabled, mixed cyclic/non-cyclic cells, incremental updates,
and backwards compatibility.
Closes #522