Diff Algorithms Explained: Myers, Patience, and Histogram Diffs