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.