Align binary versions by interleaving core and module builds.

All transitive dependencies of a scala release must consistently
use the same binary version, or SBT (in principle, correctly) complains.

This script:
 1. locally publishes Scala core (cf. the ant build's locker stage)
 2. locally publishes the modules built using that compiler (quick)
 3. publishes Scala built with locker, depending on quick modules,
    which were also built with locker (thus, all on the same binary version)
 4. bumps versions.properties to set STARR version to locker, commits it
 5. tests modules (can't test in step 2. get weird match error in sbt),
    and publishes them.

It also generates tags for every project (except if `buildLocal` is `true`).

Now "all that needs to be done" is make this bullet proof/automatable.
(Use fresh maven repo, run on jenkins, push tags if all is well.)

The weird error I saw when running 'test' task in step 2.
(I think it's due to some hidden exception that causes class loading
to fail.)

```
scala.MatchError: com.novocode.junit.JUnitFramework@1f7a6f44 (of class com.novocode.junit.JUnitFramework)
	at sbt.TestFramework.createFramework(TestFramework.scala:35)
	at sbt.TestFramework.create(TestFramework.scala:52)
```
wip