Tool and library implementing patience diff