Use zinc analysis results for dependency analysis.

- Add a new build product type, "ivy_jar_products", which is produced
  by IvyResolve, and stores processed Ivy reports in the build products,
  indexed by configuration.
- Modify scala_compile to invoke zinc with a flag that makes it
  generate text versions of the analysis cache files, which can be
  used by dependency analysis.
- Rewrite dependency analysis to use the zinc analysis data to specify
  dependencies instead of parsing class files and other build products.

Auditors: benjy
Use zinc analysis results for dependency analysis.

- Add a new build product type, "ivy_jar_products", which is produced
  by IvyResolve, and stores processed Ivy reports in the build products,
  indexed by configuration.
- Modify scala_compile to invoke zinc with a flag that makes it
  generate text versions of the analysis cache files, which can be
  used by dependency analysis.
- Rewrite dependency analysis to use the zinc analysis data to specify
  dependencies instead of parsing class files and other build products.

Auditors: benjy
Applied review changes.

- Got rid of old, un-needed code.
Bump the required version of zinc.
Don't expand already expanded template args.

Also, change the expansion from has_foo to foo?, for
redability and less chance of collision.

Makes unittest pass again.
add some binaries for os x 10.8

compiling protobufs/thrift in a clean checkout on mountain lion would
generate errors like:

"FAILURE: Selected binary /Users/ryan/c/pants/build-support/bin/protobuf/mac/10.8/2.3.0/protoc does not exist!"

Auditors: benjy@foursquare.com
add lib/ to .gitignore

intelliJ puts some depended-on jars there

Auditors: benjy
Move MockTarget to its own library and package

In anticipation of using MockTarget in more tests.

Auditors: benjy
typos: s/Sirios/Sirois/g,s/dependants/dependents/g

Auditors: benjy
Privatize Context.add_target

Auditors: benjy
Privatize Group.create_chunks

Auditors: benjy
Add a simple test for CacheManager

Auditors: benjy
Make dev-mode pants pass on return code correctly

Auditors: benjy
Add __repr__ method to Goal and Group

Auditors: benjy
Add an "id" field to JarDependency

Auditors: benjy
pythonic False-casting

Auditors: benjy
boolean logic bug

Auditors: benjy
more descriptive name for CacheManager._validate

_sort_and_validate_targets

Auditors: benjy
Generate abbreviated names for a list of strings.

This is useful e.g. for obtaining concise, unique identifiers
for target IDs that otherwise share a lot of verbose segments
in common (e.g. shared directory structure).

Auditors: benjy
Add a doubly-linked DAG data structure

This will be useful for various parallelization-related dependency
analysis.

Auditors: benjy