Better change/add/delete distinction for DiffOps
Improve handling of change/add/delete ops in diff engine so Change 319866 gets a chance to run.
This uses existing diff code to compare the LHS and RHS of every DiffOp::change, and convert it to an add+delete pair if they are too dissimilar (current threshold is 25% identical chars). This functionality is already in Change 319866. This patch contains only the change vs add+del stuff without moved-paragraph-detection, for easier review.