Add a timeout to the RESTful artifact cache.

Also fix a couple of nits.
Be more conservative when injecting sibling resource dirs.

Two changes:

1. Prevent multiple bases that are siblings from injecting the
   same 'resources' sibling multiple times.

2. Only inject if the dir exists.

This mitigates a problem that was exposed by a bug in our
BUILD.bootstrap, whereby we hadn't registered scala_tests in
our tests/ source root. In this case the base is set to the
target's parent dir...
Merge pull request #113 from foursquare/master

Be more careful when injecting sibling resource dirs.
Fix forking bug.

The old code caused a race condition in contexts, such as
temporary_dir() etc.
Add source -> target lookup for JVM targets

Also add pretty-print function to Address. These changes support a
build-file generating tool I've written in foursquare.web.
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.
Make zinc analysis files portable.

We now rebase all the paths in a zinc analysis file to placeholders,
and rebase them back as needed. This allows us to port these files
between systems (e.g., via an artifact cache).
more robust dependency injection in target ctors

Sometimes, codegen targets synthesize ScalaLibrary targets after
ScalaCompile.__init__ has already run, meaning they don't get
mandatory scala runtime dependencies injected into their dependency
list.

This change makes the ScalaLibrary constructor handle reading these
dependencies from config file and adding them to all ScalaLibrary
targets.
Merge pull request #115 from ryan-williams/scala-inject

more robust dependency injection in target ctors
Remove superfluous comment.

Damn you cut-n-paste.
fix import error and unittest brokenness

this gets `./pants tests/python/twitter/pants:all` passing
again
Merge pull request #116 from ryan-williams/fix-tests

fix import error and unittest brokenness
Merge pull request #114 from foursquare/zinc_rebasing2

Make zinc analysis files portable.
combine redundant Address.reference and .pretty

.pretty optionally allowed abbreviated ':target_name'
references to targets in the same BUILD file.
Merge pull request #117 from ryan-williams/address.reference

combine redundant Address.reference and .pretty
Refactor zinc logic out of scala_compile.py.

This has been tested and seems to have no regressions.
Merge pull request #118 from foursquare/master

Refactor zinc logic out of scala_compile.py
change pom.mk to pom.mustache. no more mako
Merge pull request #119 from ryan-williams/mako-extension-bad

change pom.mk to pom.mustache. no more mako
Refactoring of scala_compile.py and related code.

It's much more readable now.

Auditors: markcc@foursquare.com.