patch: replace "prefix" and "relroot" arguments by "pathfn" (API)

Authored by martinvonz.


patch: replace "prefix" and "relroot" arguments by "pathfn" (API)

The two arguments serve a very similar purpose: "relroot" is stripped
from the front of the path, and then "prefix" (a subrepo path) is
added (also to the front). Passing in a function that does that is
more generic and will make it easier to respect ui.relative-paths in
later patches (don't worry, I'm not going to respect that option for
regular patches, only for --stat). I'm deliberately not calling it
"uipathfn", because it's generally for producing valid diffs
(including when prefix is non-empty), so things like using backslash
on Windows is not an option.

Differential Revision: https://phab.mercurial-scm.org/D5894