Fix a build invalidator bug.

A target's cache key contains the representation of its jar deps.
However the new Artifact class had no __repr__, so that representation
was Python's default one, which contains the memory address of the
object... Since this is likely to change from run to run, the result
is a ton of spurious invalidation.