Fix #338: optionally retarget @JSExport.

The "API" to do so is to define a variable named
__ScalaJSExportsNamespace in the scope (typically the global
scope) before code emitted by Scala.js is executed. If defined
and an object, exports of classes and objects will be stored
in that object. If it is not defined, they are stored in the
global scope, as they used to be.
Fix #343: do not set scalaVersion in our sbt plugin.

Setting this dated back from the early days when only a
very specific version of Scala was supported. This does
not make sense anymore, and can be confusing if you set
a scalaVersion before importing scalaJSSettings in a
build file.
Fix #303: Reflective calls to methods on java.lang.Object

Reflective calls to java.lang.Object made the Scala.js compiler crash
because of the special handling for strings in reflective calls. This
commit fixes the issue. It also adds reflective call proxies to the JS
implementation of java.lang.Object.

Further, it emits an error message if a reflective call is attempted
on a method of java.lang.Object that is not supported by Scala.js
(e.g. wait).
Merge pull request #347 from sjrd/retarget-exports

Fix #338: optionally retarget @JSExport.
Merge pull request #348 from sjrd/dont-set-scalaversion

Fix #343: do not set scalaVersion in our sbt plugin.
Merge pull request #349 from gzm0/fix-refl-call-obj

Fix #303: Reflective calls to methods on java.lang.Object