contrib: add Chris Mason's stand-alone diff tool
This uses Mercurial's diff algorithm to generate unidiffs like the traditional diff tool.
copy & rename can ignore removed source files
As mercurial now distinguishes deleted files from removed files,
we can skip removed source files while copying or renaming.
This fixes a bug that Chris Mason found. As for a test case, I can't
think of one. It's a very weird case. Basically, if there is a file
listed as changed in the changelog entry, but not showing up in any
of the associated manifest entries, hg would abort when trying to
create a changeset. Now it just decides the file must not have any
versions relevant to the changeset.
Copy manifest map before modifying it (see
issue86)