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
WIP
WIP
Merge branch 'master' into betterscala