run merge program in repo root.
before, merge program was run in user current directory. Well defined
location is better for scripts. no more need to pass HG_ROOT to merge
program now.
fix broken environment save/restore when a hook runs.
move "run commend with different env/cwd" code out to function in util.
new function is called esystem.