Search backend: fix issue with multiline payload sizes
Created by: camdencheek
With the introduction of multiline matches, we lost some of the efficiency of the line match encoding because ranges are no longer limited to a single line, so we send the overlapped lines with every result. This meant for lines with more than one match, we would duplicate the line content for each match.
This problem is something we'll need to solve better at the API layer (probably by sending hunked lines rather than the full line content for every match), but for now, this commit just re-compresses when we convert back to line matches.
Test plan
Added a test for merging line matches at the conversion step.