`setup/private/path-utils'.
The API is a little different: instead of getting the alist and the
path, there's a curried function that gets the alist and produces a
function to do the substitutions.
itself is ambiguous.
(Since this is used in contract messages, this might be a visible
difference; it still seems to me that "<user>" would be confusing.)
`setup/path-relativize'.
`setup/path-relativize' is freed from a bunch of things that were due to
historical baggage, but some remain. (Also, update its docs.)