Adding ability to exclude a spec from a list of specs that might include expansion.  If you add a caret '^' prefix to a target address on the command line, it will be removed from the list of targets to be evaluated.

Testing Done:
pants goal test tests/python/pants_test::

Added unit tests

Also ran these 2 commands on the command line and compared the output:

./pants goal list tests/python/pants_test/::

./pants goal list tests/python/pants_test/:: ^tests/python/pants_test/base::

Bugs closed: 315

Reviewed at https://rbcommons.com/s/twitter/r/626/
Update setuptools to 5.0.2.  5.0 causes build failures for at least some Linux distributions, including Ubuntu 12.04

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

This has some failures, but they're all also present on master.

Bugs closed: https://github.com/pantsbuild/pants/issues/317

Reviewed at https://rbcommons.com/s/twitter/r/630/
Interim fix for cyclic dependency
Added support for including .proto files in remote .jars on the --proto_path when compiling with protoc.

This is done by way of a new 'imports' parameter added to the java_protobuf_library target, which accepts jar dependencies and jar library targets as inputs. The syntax for this is:

java_protobuf_library(name='foo',
  imports = [
    jar(org='foo.com', name='bar', rev='1.2.3'), jar(org='bar.com', name='foo', rev='3.2.1'),
    '3rdparty:some-jar-library-containing-protos',
  ],
  ...,
)

An extra ivy step called 'ivy-imports' (rather than ivy-resolve) has been added to accomodate this. It occurs after bootstrap and before codegen.