Refactor scala-release-2.11.x

Determine Scala version as:
  1. $SCALA_VER_BASE$SCALA_VER_SUFFIX (if former variable is set)
  2. By parsing the tag (if HEAD is tagged as v$base$suffix)
  3. By parsing build.number for the base version, suffixing with -$sha-nightly

Bootstrap:
  1. Build minimal core of Scala as this version (aka locker), publish to private-repo
  2. Build modules required to bootstrap, publish to private-repo
  3. Build Scala using the previously built core and bootstrap modules, publish to private-repo
     This overwrites the minimal core on private-repo

Stage to sonatype (unless building a -nightly release):
  1. Stage this Scala build on sonatype
  2. Rebuild modules with this Scala build, and stage them on sonatype as well

The script also serializes the scala version as
`version` to the file `scalaversion.envinject`, so that it can be propagate
to the downstream job that builds the actual distribution (with a bit more jenkins magic).

This script can be run in multiple modes. It is design to work without any input,
so that it could be run in Travis CI. In that mode, it'll build a release when
the current HEAD of $SCALA_REF is tagged, and stage to sonatype. Otherwise,
it'll build a nightly.

Since the nightlies are intended to be a drop in replacement, all modules are built with the
full Scala version as their binary version, so that you can just set scalaVersion to the
nightly's sha-derived version and be good to go.

The other way to trigger a release is by setting the SCALA_VER_BASE env var.

By default, we build the versions of the modules as specified by versions.properties
(as specified in the $SCALA_REF commit). Set moduleVersioning to something random
to trigger building HEAD of each module, generating a fresh -$(git describe)-nightly version for each.

PS: set publishToSonatype to anything but "yes" to avoid publishing to sonatype
(publishing only done when $SCALA_REF's HEAD is tagged / SCALA_VER_BASE is set.)