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.
Make cache key ids conform to target ids.

Makes debugging easier.
Code review fixes.
Bugfix.
Merge pull request #125 from foursquare/scala_refactor_fixes3

Complete rewrite of scala_compile.py.