In IvyImports, make a single call to ivy to map all jar files.

If you have many targets with jars to map in, this is a significant performance increase.

Testing Done:
Added a new unit test.
Ran this in our internal repo where we have a lot of uses of java_protobuf_library() using imports=.

CI running at:  https://travis-ci.org/pantsbuild/pants/builds/41531811

Bugs closed: 286, 809

Reviewed at https://rbcommons.com/s/twitter/r/1364/
Revert "In IvyImports, make a single call to ivy to map all jar files."

This reverts commit 1aaf3b676187cf362ba8b7fed461db3538cd5c00.
Refactor duplicate dependency detection to be in the BUILD file parsing logic

This is a refactoring of https://rbcommons.com/s/twitter/r/1332/.  The intent of the original
change was to keep BUILD files from declaring the same target twice in a dependency[] attribute.
This refactor was done to avoid triggering this error due to implicit dependency injection.
For example, We don't really care if an explicit dependency is added to a BUILD file that
duplicates a dependency injected by a code generator like protobuf_gen.py.

Now the same case fails with:

```
Exception message: Invalid target TargetAddressable(..., name=greet, **kwargs=...): dependencies must be unique.  '3rdparty:guava' occurs more than once.
 while executing BUILD file /Users/zundel/Src/pants/examples/src/java/com/pants/examples/hello/greet/BUILD
 Loading addresses from 'examples/src/java/com/pants/examples/hello/greet' failed.
  referenced from examples/src/java/com/pants/examples/hello/main:main-bin
  referenced from examples/src/java/com/pants/examples/hello/main:main
```

Testing Done:
CI is running.

Bugs closed: 808

Reviewed at https://rbcommons.com/s/twitter/r/1362/
Remove unused/invalid import to fix build break
Add Pants Target Type to depmap so that intellij plugin can use this to identify scala target VS java target

Testing Done:
Manually ran
1. ./pants goal test tests/python/pants_test/tasks:depmap
2. ./pants goal test tests/python/pants_test/tasks:depmap_integration

Ci here https://travis-ci.org/pantsbuild/pants/builds/41554780

Bugs closed: 655

Reviewed at https://rbcommons.com/s/twitter/r/1366/
Make Pants goal run for Python propagate the python program's exit code (as pants goal run does for java).

Testing Done:
Ran new tests.

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