Integrate unit testing framework with sbt test discovery.

- Tests can now be run using the test facilities built in sbt. To use it
  you need to add a dependency on a Scala.js test framework (for example
  Scala.js jasmine test framework) and add a marker interface
  (`scala.scalajs.test.Test`) to your test classes (or extend
  JasmineTest when using the Scala.js jasmine test framework).
- The default Scala.js test framework and Scala.js test bridge class can
  be changed using sbt settings.
- A reference implementation of the test framework using jasmine is
  provided.
- Added experimental support for `env.js` in the run and test
  environment. Just add `env.js` webjar as a dependency to your project.
- Run command now searches for objects that have a `main` method (normal
  sbt behavior).
Add an object literal construction mechanism.

Literal JavaScript objects like
  {foo: 3, bar: "foobar"}
can now be constructed with the syntax
  js.Dynamic.literal(foo = 3, bar = "foobar")
Of course, the `literal` method can be imported in scope with
a short name, e.g.,
  import js.Dynamic.{ literal => lit }
  lit(foo = 3, bar = "foobar")
Add js.ThisFunctionN to capture JS `this` as parameter.

The traits js.ThisFunctionN model JavaScript functions that
consider `this` as a parameter. They map to scala.Function{N+1}
where `this` is explicitly stated as a first parameter.
Pass command-line arguments to main method in run task.
Version 0.2.
Towards 0.3.
Move scalaJSExternalCompileSettings outside the sbt plugin.

It has been relevant only to the build of Scala.js itself for
a few months, now.
Fix #102: test:packageJS and compile:packageJS have the same outputs.

Now compile:packageJS emits X-extdeps.js, X-intdeps.js and X.js,
whereas test:packageJS emits X-test-extdeps.js, X-test-intdeps.js
and X-test.js.

In the process, made these three destinations configurable through
settings
artifactPath in packageSomethingJS
and
moduleName in packageSomethingJS
Display warning when the scalalib/source submodule is not up-to-date.

This also fixes #103.
Add test suite for Java regex emulation.

This fixes several issues in the regex implementation:

 - Calling match accessors before find should throw
   IllegalStateException.
 - `Matcher.hitEnd` should return true if last match failed.
 - `Matcher.appendReplacement` should return the matcher.
 - Implement support for `Matcher.region`.

Fixes #108
Merge pull request #112 from jonas/java-regex-test-suite

Add test suite for Java regex emulation.
Fix #117: Implement java.lang.Character.digit
Fix #109: Handle LabelDef for while (false) {}
Fix #104: Correct hash for boxed Byte, Short and Int
Fix #116: Correct comparison for boxed Float and Double
Fix #113: Prepend a Char to String
Implement java.lang.Character.isWhitespace
Merge pull request #120 from gzm0/bugfixes

Various bugfixes
Allow to publish releases to Bintray.
Fix #123: do not load the test framework if its class is not there.

The Scala.js-specific sbt test framework must not be loaded when
its implementing class (which is specified with the setting
`scalaJSTestFramework`) is not on the classpath. Loading it can
cause problems if another sbt test framework has to be used.