Various refactoring of PythonChroot and related code.

Review Request #2327 — Created June 5, 2015 and submitted — Latest diff uploaded

jsirois, patricklaw

- Fold all pex interaction into PythonChroot/temporary_chroot().
Clients of PythonChroot no longer use PEX, PEXBuilder etc. directly.
- Get rid of and move its functionality into its only
client - PythonChroot. So instead of passing in many arguments,
it can read from self.
- Make most optional arguments required, in methods we were always
passing those arguments into anyway.
- Rename the egg_cache_dir option to the more precise 'resolver_cache_dir',
and move the global cache ttl option to be a PythonSetup option.
- Make the order of various arguments uniform.

All this simplification is good in its own right, but my motivation for doing it now is as a means to the future end of implementing caching of entire chroots, which in turn will make many things, including test running, much faster.

CI passed here: