switch src/* usages of Config.load to use Config.from_cache instead

Now all usages of Config.load in src use a cache if the config already has been parsed.

This doesn't change test usages, but since tests use temp directories, tests with different ini files don't interfer

Testing Done:
ran ci.sh locally

travis ci in progress: https://travis-ci.org/pantsbuild/pants/builds/40687043

Bugs closed: 788

Reviewed at https://rbcommons.com/s/twitter/r/1319/
- Create VIRTUALENV_PACKAGE_LOCATION env var so we can customize virtualenv package download
- Refactor to have a common.sh containing the set_archflags and logging functionalities.
- Make the virtual env script a bit more robust against curl/tar/activate errors

Testing Done:
manually tested:
1) not specifying VIRTUALENV_PACKAGE_LOCATION,
2) specifying a valid custom VIRTUALENV_PACKAGE_LOCATION location, and
3) specifying an invalid VIRTUALENV_PACKAGE_LOCATION location.

Travis: https://travis-ci.org/jinfeng/jinfeng-pants-fork/builds/40690744

Reviewed at https://rbcommons.com/s/twitter/r/1316/
Skip compressing/writing artifacts that are already in the cache.

Compressing things is expensive, so no reason clients should do it if they don't have to and writing the same thing over and over wastes IO capacity on the cache server.

Testing Done:
https://travis-ci.org/pantsbuild/pants/builds/39729173 passed

Bugs closed: 760

Reviewed at https://rbcommons.com/s/twitter/r/1272/
Support passthru args in tasks.

Tasks must declare that they take them.

The last task explicitly mentioned on the cmd-line gets them.

Implemented this for pytest.

Testing Done:
Verified that this does what you expect:

./pants goal test.pytest compile tests/python/pants_test/option/ -- -s

CI passes.

Reviewed at https://rbcommons.com/s/twitter/r/1320/
update the "Pants Essentials" tech talk slides

Nothing changed much; everything changed some

Testing Done:
eyeball

Reviewed at https://rbcommons.com/s/twitter/r/1314/