First patch for propogating multifile changes from tweak outputs to LSP
WorkspaceEdits.
Uses FS to convert tooling::Replacements to TextEdits.
Errors out if there are any inconsistencies between the draft version and the
version generated the edits.
This callback is called asynchronously and the version inside DraftMgr may be newer than the one we used to calculate the original offsets inside replacements at this point.
We should not rely on DraftMgr, doing conversions on the source buffers inside SourceManager is probably the most reliable option we have.