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.
port:4:export
port:4:vaportight
port:4:import/export
FIXME: history is wrong here
port:1:1:-:eggs:import
port:1:2:+:eggs:vaportight
port:1:3:+:eggs:import/export
port:0:2:+:spam:export
port:0:1:+:spam:import
port:4:import/export