Refactor DiffMatchPatch diff handler (#16483)
Follow up to #16027
Fixes #15850
Summary of the issue:
Diff Match Patch proxy crashes and the calling thread deadlocks
Description of user facing changes
Diff Match Patch proxy will become more stable
Description of development approach
Refactored DiffMatchPatch diff handler.
Now, when reading from stdout of a proxy process, if not enough bytes are read, the return code is checked.
If a return code was received, an exception is raised and a fallback to difflib occurs.