Backport (#517) Fix #499: Emit opaque URI in positions for virtual Scala files

(cherry picked from commit fe5a9c69d959817c82b66f19e2e2ee852b03b9fa)

Conflicts:
	compiler/src/main/scala/scala/scalajs/compiler/GenJSCode.scala
	compiler/src/test/scala/scala/scalajs/compiler/test/util/JSASTTest.scala
Backport (#517) Fix #525: Closure emits spurious warnings for @JSExported properties.

(cherry picked from commit 8d2111457cff2bfc05ff91f731cd5c208a70d729)
Backport (#517) Fix #518: Closure sometimes eliminates all our exports.

(cherry picked from commit 8793d47c9f88def176e927a2296fb82db893859a)
Backport (#517) Report call stack when warning for non-existent class.

(cherry picked from commit 702d8d2b95208c4400e7da7a76792bd37880e30d)

Conflicts:
	tools/src/main/scala/scala/scalajs/tools/optimizer/Analyzer.scala
Merge pull request #531 from gzm0/backports

Backports to v0.4.x (#517) until c83355646e3b6d99fec3beb3bb85debde5cd098a