Fix #360: Add a cross-building discipline.

The discipline is to have a double binary version suffix for
Scala.js libraries: '_sjs<Scala.js-bin-ver>_<Scala-bin-ver>'.
For example, when building a library for Scala 2.11.0 and
Scala.js 0.5.0, the suffix will be '_sjs0.5_2.11'.

This commit adds the utilities to build CrossVersions that
follow this discipline, as well as an additional dependency
builder %%% which adds the double binary version suffix to
the module ID. Finally, it configures Scala.js projects to
be published with the double binary version suffix by default.

Note that the scalajs-library and scalajs-jasmine-test-framework
are only published with the Scala binary version, since their
release number is already tight to a Scala.js version. So they
should be added with %% and not %%%.
Tell SBT to nicely trace exceptions from Rhino rather just print
Merge pull request #570 from gzm0/trace-rhino

Tell SBT to nicely trace exceptions from Rhino rather just print
Fix #569: No NPE when unable to resolve source map
Merge pull request #568 from sjrd/cross-discipline

Fix #360: Add a cross-building discipline.
Merge pull request #574 from gzm0/fix-source-map

Fix #569: No NPE when unable to resolve source map
Fix binaryScalaJSVersion.
Merge pull request #576 from sjrd/fix-binaryscalajsversion

Fix binaryScalaJSVersion.
Fix #577: Make (5L: Any).getClass return java.lang.Long.
Merge pull request #578 from sjrd/fix-long-getclass

Fix #577: Make (5L: Any).getClass return java.lang.Long.
Fix #571: Fix line offset when lazy-loading files in Rhino
Fix #581: Fix off-by-1 errors in SourceMapper
Merge pull request #582 from gzm0/fix-source-map

Fix source map
Fix #580: Catch exceptions that escape JS test framework in test bridge
Merge pull request #583 from gzm0/failsafe-test-bridge

Fix #580: Catch exceptions that escape JS test framework in test bridge
Fix #575: Add Scala.js magic number and version to IR binary format
Add JS dependency tracking via manifests.

A JS_DEPENDENCIES manifest file is added to each configuration
classpath and exported in JARs. This way, libraries may declare what
exact JS files should be included from a WebJar they depend on. (Or
what JS files they provide themselves should be included).

Example usages can be found in the build definitions for the
jasmine-test-framework and the testing example.

- This completely removes `importScripts` and fixes #457
- The project's classpath is fully available even in the post package
  stages. This is necessary to allow for discovery of dependency
  manifests and JS libraries the project depends on.
Merge pull request #584 from gzm0/ir-version

Fix #575: Add Scala.js magic number and version to IR binary format
Merge pull request #579 from gzm0/js-deps

Add JS dependency tracking via manifests.
Fix #565: Move corejslib.js as a resource for the tools.

This simplifies the tools API.