Add ParseContext hook for adding exec globals
clean up ParseContext exec hook change
Merge pull request #122 from ryan-williams/parse-context

Add ParseContext hook for adding exec globals
Allow building a client that can select the service endpoint based on an
endpoint name specified in the ServiceInstance's additional endpoints.

The default behavior is to use the primary end-point (backwards compatible).
Use an Optional to hold endpoint name.

+ use Optiona to hold endpoint name
+ remove duplicate code in GET_ADDRESS

hat-tip: jsirois for these excellent suggestions in his review
Complete rewrite of scala_compile.py.

- Breaks it up into multiple files.
- Explicitly models previously implcit concepts (artifacts and their state).
- Various performance heuristics such as symlinking instead of copying files.
- Better artifact cache support.

Best to review src/python/twitter/pants/tasks/scala_compile.py as if it were
a new file. The diffs will be meaningless.
Code cleanup and a bit of refactor to address jsirois's review comments.
Fixed a typo and a minor optimization
Make cache key ids conform to target ids.

Makes debugging easier.
Merge pull request #124 from birmiwal/master

Support selecting additional end-points while building a Thrift client
Code review fixes.
Bugfix.
Initialize endpointName to an empty Optional holder.
This fixes broken ThriftFactoryTest too.
Merge pull request #126 from birmiwal/master

Initialize endpointName with Optional.absent() in ThriftFactory
Merge pull request #125 from foursquare/scala_refactor_fixes3

Complete rewrite of scala_compile.py.
Codegen and java compile now use artifact cache.

Also: fix style nits, and remove logging noise.

Also: fix a hardlinking bug.

Auditors: markcc
Remove now-stale comment.
Merge branch 'master' into new_reporting
WIP