memoize `./pants path` lookups

it was dumbly not re-using previous work
memoize `pants paths`

split out path and paths implementations; they need to work
differently to each be as fast as possible
Fix continuation indent.
Change pinger implementation.
Merge remote-tracking branch 'twitter/master'
Artifact cache bugfix.
Add public mailing list info and slightly better requirements / testing info.
Artifact cache tweaks.
Have multiple ping attempts.

Parameterize the pinger.
Switch pants artifact cache to gzip.

It turns out to be much faster than bzip2, with only
a small size penalty.
Up the artifact cache timeout.

Also allow all 2XX responses.
Add support for non-file build products.

Auditors: benjy
Added support for exclusives declarations.

- Added exclusives fields to selected target types. The specific
  set of supported targets type is the set where we have real use-cases
  in mind. Adding to other target types is trivial.
- Added the CheckExclusives task, which propagates exclusive data,
  and generates error messages if conflicting exclusives are detected.

Note: Up to this change, this should be able to be merged directly into
master without screwing up any existing builds. This does compute divergent
classpaths for incompatible exclusives groups, but the classpaths are currently
not used. A subsequent change will merge the new classpath manipulations into
compilation tasks.

Auditors: benjy
Address review comments.

Review note: last chance to say anything before I merge this into master! Assuming
no objections, I want to push this into master before integrating the rest of
the exclusives code.

Auditors: benjy
Pants bugfix.
Better error when bundling multiple jvm_binary tgts.
Add missing import.
Merge exclusives branch.

Auditors: benjy
Do a better job scrubbing PYTHONPATH.
Merge pull request #146 from wickman/wickman/better_pex_scrubbing

Do a better job scrubbing PYTHONPATH.