tech talk prezo: Pants Essentials. Excellent feedback is excellent

Reviewed at https://rbcommons.com/s/twitter/r/1407/
Add missing class

Reviewed at https://rbcommons.com/s/twitter/r/1414/
Allow rbtools to be used from anywhere

Testing Done:
I used this to post https://rbcommons.com/s/twitter/r/1412, because I didn't have another handy way to use rbtools.

Reviewed at https://rbcommons.com/s/twitter/r/1413/
Fix error in string formatting

1. Fix mis-spelled key "cateegory".
2. Simplify complicated format-within-format.

Testing Done:
Manual testing.

Reviewed at https://rbcommons.com/s/twitter/r/1416/
Exit workers on sigint rather than ignore

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

Also: ctrl-c'ed in the middle of cache fetch with and without this change.

Without: observe dots continue to print for several seconds after main process appears to exit. `killall python` required to stop them.
With: dots stop printing immediately, no python processes running.

Bugs closed: 829

Reviewed at https://rbcommons.com/s/twitter/r/1405/
Patch up migrate_config

- Patch up migrate_config with missing dependency.
- Move partition_size_hint into the correct section in pants.ini as pointed out by migrate_config
- Fix the 'target' and 'source' config options for [compile.java] (remove quotes)

Testing Done:
Before adding this dep, got:

  File "/Users/zundel/Src/pants/dist/migrate_config.pex/pants/option/migrate_config.py", line 13, in <module>
ImportError: cannot import name custom_types

when trying to execute migrate_config.

Bugs closed: 832

Reviewed at https://rbcommons.com/s/twitter/r/1409/
Fix antlr package derivation.

Also fixup jvm tool integration tests to respect
TMPDIR being on a different device than the build root.

Testing Done:
$ PANTS_DEV=1 ./pants goal list tests/python/pants_test/tasks: | grep antlr | PANTS_DEV=1 xargs ./pants goal test

CI went green here: https://travis-ci.org/pantsbuild/pants/builds/42654357

Bugs closed: 833

Reviewed at https://rbcommons.com/s/twitter/r/1410/
Remove support for __file__ in BUILDs.

NB: this is a BUILD API break.

Fixup BuildConfigurationTest to match removal of __file__ and fixup code formatting.

Testing Done:
CI went green here: https://travis-ci.org/pantsbuild/pants/builds/42913383

Bugs closed: 835

Reviewed at https://rbcommons.com/s/twitter/r/1419/
Fixup BuildGraph to handle mixes of synthetic and BUILD targets.

An upcoming change [1] will inject synthetic JarLibraries that jvm
tools will depend on.  This tickles a corner where the BuildGraph
can be asked to resolve a SyntheticAddress that has been injected.

Tighten up interfaces removing unused methods and prefixing private
helpers with _ to clarify APIs and tighten them.

Modify tests to validate the new translation of SyntheticAddress to
BuildFileAddress when lookups are made and resurrect tests in
BuildGraphTest.

This also fixes some minor fallout in production code and tests.

[1] https://rbcommons.com/s/twitter/r/1423/

Testing Done:
CI went green here: https://travis-ci.org/pantsbuild/pants/builds/42935970

Bugs closed: 837

Reviewed at https://rbcommons.com/s/twitter/r/1420/
Port pants to pex 0.8.x

SSIA.  The user facing parts of this change:
  - package resolution happens via requests now -- this is way more reliable
    and results in fewer Untranslateable exceptions
  - PEX_VERBOSE now controls all pex verbosity, including better messages around Untranslateable (yay!)
  - fixes a major pex regression with namespace packages introduced somewhere in 0.5.x

The pex 0.7.0 -> 0.8.0 changelog:

* *API change*: Decouple translation from package iteration.  This removes
  the Obtainer construct entirely, which likely means if you're using PEX as
  a library, you will need to change your code if you were doing anything
  nontrivial.  This adds a couple new options to ``resolve`` but simplifies
  the story around how to cache packages.
  [RB #785](https://rbcommons.com/s/twitter/r/785/)
* Refactor http handling in pex to allow for alternate http implementations.  Adds support
  for [requests](https://github.com/kennethreitz/requests),
  improving both performance and security.   For more information, read the commit notes at
  [91c7f32](https://github.com/pantsbuild/pex/commit/91c7f324085c18af714d35947b603a5f60aeb682).
  [RB #778](https://rbcommons.com/s/twitter/r/778/)
* Improvements to API documentation throughout.
* Renamed ``Tracer`` to ``TraceLogger`` to prevent nondeterministic isort ordering.
* Refactor tox.ini to increase the number of environment combinations and improve coverage.
* Adds HTTP retry support for the RequestsContext.
  [RB #1303](https://rbcommons.com/s/twitter/r/1303/)
* Make pex --version correct.
  [Issue #19](https://github.com/pantsbuild/pex/issues/19)
* Bug fix: Fix over-aggressive sys.modules scrubbing for namespace packages.  Under
  certain circumstances, namespace packages in site-packages could conflict with packages
  within a PEX, causing them to fail importing.
  [RB #1378](https://rbcommons.com/s/twitter/r/1378/)
* Bug fix: Replace uses of ``os.unsetenv(...)`` with ``del os.environ[...]``
  [Pull Request #11](https://github.com/pantsbuild/pex/pull/11)
* Bug fix: Scrub sys.path and sys.modules based upon both supplied path and
  realpath of files and directories.  Newer versions of virtualenv on Linux symlink site-packages
  which caused those packages to not be removed from sys.path correctly.
  [Issue #21](https://github.com/pantsbuild/pex/issues/21)
* Bug fix: The pex -s option was not correctly pulling in transitive dependencies.
  [Issue #22](https://github.com/pantsbuild/pex/issues/22)
* Bug fix: Adds ``content`` method to HTTP contexts that does HTML content decoding, fixing
  an encoding issue only experienced when using Python 3.
  [Issue #10](https://github.com/pantsbuild/pex/issues/10)

Testing Done:
build-support/bin/ci.sh

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