Share Env/CWD methods between Passthru + ExecFuture, expose Env
Summary:
Ref T10751. This is several layers deep: I want to unit test environmental configuration for git/svn/hg commands, but there's currently no way to read it.
It's also duplicated between Passthru and ExecFuture classes.
Extend them from one class doing CWD + Env stuff. Clean that stuff up a little. Add a getEnv() for reading so I can do unit tests.
Test Plan: Ran arc unit --everything, see next diff for unit tests.
Reviewers: chad
Reviewed By: chad
Maniphest Tasks: T10751
Differential Revision: https://secure.phabricator.com/D15751