Limit editors' refresh runnables (#51299)

Before, both rust-analyzer's LSPext tasks and tree-sitter tasks were
queried on the entire multi buffer range.

The PR moves all runnable-related logic into a submodule, and reworks
the logic to consider only the visible buffers.
Singleton buffers have their tasks resolved for the entire range still
(same as LSPext tasks work), multi buffers have their buffers' data
cached and reused.

Release Notes:

- Improved multi buffer's runnables resolution performance
2b425aa102Kirill Bulatov committed on 3/11/2026, 3:05:22 PM· committed by GitHubparenta8def21
6 files changedLine totals unavailable