Fix bug in junit_run.py.

Not all targets have classes. E.g., targets that aggregate
other targets.

Auditors: pl
Fix handling of upstream deps in zinc.

A) Put them on the classpath.
B) Only provide upstream analysis if it actually exists.
C) Transform FQCNs to classfile paths, which is what the dep checker understands.

Auditors: pl
Put jar symlinks in a well-known location.

Previously they were qualified by a hash of the current target set,
but when that changes we can get spurious missing deps, because
the old hashes are still in the analysis file.

Auditors: pl
Begin moving away from old-style products registration.

This commit gets rid of all uses of the 'classes' product
in favor of new-style products.

Auditors: pl
Add a docstring.
Restore a product requirement.

It was deleted due to naive assumptions about it not being needed.

This brings home that we really need to formalize the products
mechanism, so it's easy to figure out who produces what and who
consumes what.
Lots of comments on products.py.

So we know what its deal is when we come to change it.
Get rid of memoization in missing dep analyzer.

It was causing more trouble than it was worth.

I will profile the code to see how much worse this makes
things, and find other solutions if needed.

Auditors: pl
Fix broken artifacgt caching for codegen.

Added a bunch of clarifying comments in the code
to prevent future regression.

Auditors: pl
Pants script with md5sum capabilities
Addressing review comments
Bump jmake version.
Merge pull request #205 from orsenthil/pants_script

Pants script with md5sum capabilities
Upgrade to jmake-1.3.7-7 to pick up a fix for the text dependency db format.
Kill the private foursquare repo from the public resolver list and update the maven central url.
Kill ivysvnresolver bootstrapping - pants does this internally now.
Kill missed reference.
Fixup maven central repo url.
Minimize commons repositories.