memoize `./pants path` lookups

it was dumbly not re-using previous work
memoize `pants paths`

split out path and paths implementations; they need to work
differently to each be as fast as possible
Merge remote-tracking branch 'origin/master' into ps
review feedback
more review feedback
Merge pull request #133 from ryan-williams/paths

Paths
Fixed ZooKeeperNode to prevent duplicate WatcherS

Duplicate WatcherS were being added on failed getData calls
because a new Watcher was passed into the getData call each time. This
change creates a Watcher that is .equals so that the Set of Watchers
within the ZK library doesn't grow when there are request failures.
WatcherS are now instance fields

applied feedback from @jsirois
Merge pull request #177 from foursquare/fs-zk-20130819

Fixed ZooKeeperNode to prevent duplicate WatcherS
Support osx 10.9.
Merge remote-tracking branch 'twitter/master'
raise URLError when CachedWeb gets non-200 code

This is to stop bad responses from being put into the python cache.
Merge pull request #22 from jeffjenkins/py-cache-error

raise URLError when CachedWeb gets non-200 code
Add .war extension to _map_jar

- this allows 3rdparty .war dependencies to be bundled into
  an app bundle.  You can use this to serve 3rdparty
  web applications from a jetty container server, and
  have this managed via ivy.
Merge pull request #23 from slackhappy/fs-nonbeta-warsupport

Add .war extension to _map_jar