Fixup ScalaLibrary dep injection - do this at BuildGraph population time.

This is effectively a restoration of 24681429b by Ryan Williams.

Previously ScalaLibrary runtime deps were injected in the classpath by
ScalaCompile at execute time.  This let downstream goals like test and
run that just use an aggregate classpath work, but it failed for any goal
needing correct deps at a per-target level like binary, bundle and publish.

This change introduces a scala TargetPlatform class as a very rough start
to centralizing the scala version to target and uses this in ScalaLibrary and
ZincUtils.

Testing Done:

Before:
=======
$ PANTS_DEV=1 ./pants goal bundle src/scala/com/pants/example/hello/exe
$ java -jar dist/exe-bundle/exe.jar
Exception in thread "main" java.lang.NoClassDefFoundError: scala/ScalaObject
...
$ tree dist/exe-bundle/
dist/exe-bundle/
├── exe.jar
└── libs

1 directory, 1 file

After:
======
$ PANTS_DEV=1 ./pants goal bundle src/scala/com/pants/example/hello/exe
$ java -jar dist/exe-bundle/exe.jar
$ java -jar dist/exe-bundle/exe.jar
Num args passed: 0. Stand by for welcome...
Hello, Resource World!
$ tree dist/exe-bundle/
dist/exe-bundle/
├── exe.jar
└── libs
    └── org.scala-lang-scala-library-2.9.3.jar -> /home/jsirois/dev/3rdparty/jsirois-pantsbuild-pants/.pants.d/ivy/mapped-jars/src.scala.com.pants.example.hello.exe.exe/org.scala-lang/scala-library/default/org.scala-lang-scala-library-2.9.3.jar

1 directory, 2 files

Bugs closed: 208, 256

Reviewed at https://rbcommons.com/s/twitter/r/581/