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.
Fix #124: Add setting to opt-out setup of the Scala.js runner.

Setting `scalaJSSetupRunner in Compile` to false will now
disable the installation of the Scala.js runner for use by the
run task.
Clean-up of settings related to the ScalaJSEnvironment.

The task prepareEnvironment has been renamed to
scalaJSEnvironment, and has been "promoted" to be part
of scalaJSConfigSettings. It is not scoped by task anymore.

Its dependencies, sources and fullClasspath, are now
scoped to scalaJSEnvironment itself instead of run or test.
Merge pull request #128 from sjrd/fix/issues-123-124

Fix issues 123 and 124 + clean-up scalaJSEnvironment settings.
Fix #125: Correctly resolve overload when converting scala.Function to js.Function
Merge pull request #129 from gzm0/func2jsFuncOverload

Fix #125: Correctly resolve overload when converting scala.Function to js.Function