New twitter/commons version, with fix for _atexit errors.
The massive BUILD file and Target refactor

So much change.  See https://rbcommons.com/s/twitter/r/321/

The highlights:
* Tighten up the BUILD file context
* Remove ParseContext, don't allow recursive BUILD file parsing
* Formalize the BuildGraph data structure
* Formalize and tighten up the Target class
* Linearize the Target class hierachy
* Force explicit registration for client plugins
* Add the Payload class and tighten up invalidation
Have a single internal classes dir even in a non-deployjar bundle.

This restores the status quo ante.

This turns out to make the code a lot simpler too.

The terminology 'deployjar' is confusing, so I changed the name
of the internal method deployjar() to loose_classfiles_jar(), which
is more descriptive. However I left the term 'deployjar' in the
cmd-line flag name, for backwards compatibility.
Fix list-of-sources instead of fileset set operations
Fix setup_py sources use missed in big refactor
Integrate refactor changes into protobuf task
Remove base_test module and fix up missing deps
Bust up some of the dependency hairball

* Remove some unused imports
* Separate reporting.report
* Move cache_manager and task_error into base/
* All circular dependencies are removed from base/

Testing Done:
ci.sh passes

Reviewed at https://rbcommons.com/s/twitter/r/360/
doc, docstring: Jake Donham's clarification: where to see test output

https://rbcommons.com/s/twitter/r/366/
Fix setup.py install_requires post targets refactor.

With the target refactor PythonRequirementLibrary is now used rather than
PythonRequirement when generating setup.py install_requires. At present this
field is not populated leading to missing requirements and unisntallable
pants-generated sdist's.

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

Confirmed setup.py install_requires is now populated.

Reviewed at https://rbcommons.com/s/twitter/r/368/
Make sure zinc analysis is always sorted.

Note that we still need to check if this is a performance issue.
If so, we can sort only the sections that must be sorted for correctness
(namely, compile options). But then we have to verify that Zinc is OK
with sections being unsorted. It should be, but you never know.

My attempt to replace the defaultdict(lists) with OrderedDicts had
noticeable performance impact, so that's probably not the way to go.

Ultimately we need to benchmark this.

TODO: modify zinc to be more careful about how it compares
compile options between analysis files.
Demonstrates bug with no BUILD in dir with BUILD.gen