unsaved changes: move diff parsing into difflibex

(integrated from master branch change a81a035 by Todd Whiteman <toddw@activestate.com>)
unsaved changes: move diff parsing into difflibex (part 2)

(integrated from master branch change f8223a4 by Todd Whiteman <toddw@activestate.com>)