Added source root tests, updated the internal data structure to include a tree.

Added source root tests, updated the internal data structure to include a tree to speed up the find() operation.

With 1000+ source roots in our environment, this appears to shave about 5 seconds off of a no-op build.

Testing Done:
Retrofitted tests for SourceRoot.
Added new unit tests for SourceRootTree data structure

CI passed at: https://travis-ci.org/pantsbuild/pants/builds/34713735

Bugs closed: 556

Reviewed at https://rbcommons.com/s/twitter/r/1003/
Add flag to dump project info output to file.

This file option will be used in intellij plugin.

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

This is OS Pants review for https://github.com/pantsbuild/intellij-pants-plugin/issues/5

Bugs closed: https://github.com/pantsbuild/intellij-pants-plugin/issues/5

Reviewed at https://rbcommons.com/s/twitter/r/998/
doc: update 3rdparty_py to mention requirements.txt and python_requirements

python_requirement() is nice, too, but it's not your only choice

Reviewed at https://rbcommons.com/s/twitter/r/995/
fixed --depmap-project-info for scala sources with the same package_prefix

the problem was that we were using same current_target  for all collected source roots. not the proper target this root is part of.

Testing Done:
tests are passing

Reviewed at https://rbcommons.com/s/twitter/r/990/
update release.sh and release.rst to include pantsbuild.pants.testinfra

Moving on, we'll publish two packages at the same time: pantsbuild.pants
and pantsbuild.pants.testinfra to PyPi. While they're sim-released, users
of pants can choose to install pants only if they don't have any
customization to pants thus avoiding the need of writing additional test
cases to which the pantsbuild.pants.testinfra would be helpful.

Testing Done:
I'm not the owner of pantsbuild.pants package on PyPi, so all my testing are local:

build-support/bin/release.sh -t
build-support/bin/release.sh -n

tested both. For the '-n' dry-run, I've also manually injected some failures at pants, pants_testinfra build stages, as well some failures in their testing commands, to have verified the proper command chaining behavior of the bash script.

Bugs closed: 539

Reviewed at https://rbcommons.com/s/twitter/r/1004/
Adds the --<goal>-use-source-root for IDE project generation tasks.

The option will put one entry for each source_root registered that has an active path in the project.
This is useful for Maven style layouts.

Testing Done:
Added unit test and integration test.

Manually tested with:

  pants goal idea testprojects/maven_layout:: --idea-use-source-root

CI is running.

Bugs closed: 558

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