Treat name in getResourceAsStream as resource path

The parameter for getResourceAsStream is not a class name. It's a resource path!
Javap for Java 7 (Fixes SI-4936)

Add support for reflective invocation of javap under jdk7,
using the quasi-javax.tools API.

Under -Ygen-javap, warn if you can't.

Since JAVA_HOME is used to locate tools.jar, the script is
updated to convert it for cygwin.

Update Javap for simpl repl.

Also, reduce clutter of JavaxTools as suggested.

JavapTool7 evades repl truncating if enabled; the truncating PrintWriter
is not line-oriented but string-oriented.
Javap for repl output.

The enabling fix is in AbstractFileClassLoader: the javap tool
uses a ScalaClassLoader to pick up tools.jar, but delegation to
the parent AbstractFileCL was broken; minimal support for findResource
was added.

Other minor tweaks to output: retain the weird "Binary file...
contains" message as documentation; the message is not output for
:javap $line3/$read$$iw$$iw$Foo.class, for example.

No option handling by javap-7 except to catch IllegalArg, so that
combined arg style is not yet supported (:javap -pv).
SI-6769 Removes GenJVM backend

Get rid of GenJVM and everything that refers to it.
Also get rid of GenAndroid since it's dead code that refers to GenJVM.
Expunged the .net backend.

It lives on in a branch born from this commit's parent.
It's abrupt; no attempt is made to offer a "smooth transition"
for the serious msil userbase, population zero. If anyone feels
very strongly that such a transition is necessary, I will be
happy to talk you into feeling differently.
SI-5841 reification of renamed imports

Reification of renamed imports is done by catching Selects with name != their tree.symbol.name,
replacing this name with tree.symbol.name, and then doing reifyProduct in case
of renamed terms and reifyBoundType (inner) in case of renamed types.
Cleanups of reifyBoundTerm and reifyBoundType

Cases in reifyBoundTerm are merged by constructors; conditions in reifyBoundType are linearized;
also, in latter, or-patterns are used to merge some cases;
and some minor stuff not worth mentioning.
Merge commit 'refs/pull/1717/head' into merge-msil-genjvm-delete

* commit 'refs/pull/1717/head':
  SI-6769 Removes GenJVM backend

Conflicts:
	src/compiler/scala/tools/nsc/backend/jvm/GenAndroid.scala
Merge commit 'refs/pull/1718/head' into merge-msil-genjvm-delete

* commit 'refs/pull/1718/head':
  Expunged the .net backend.

Conflicts:
	build.detach.xml
	build.examples.xml
	build.xml
	project/Build.scala
	src/compiler/scala/tools/ant/Scalac.scala
	src/compiler/scala/tools/nsc/Global.scala
	src/compiler/scala/tools/nsc/settings/StandardScalaSettings.scala
	src/compiler/scala/tools/nsc/symtab/clr/TypeParser.scala
	src/compiler/scala/tools/nsc/transform/Mixin.scala
	src/intellij/compiler.iml.SAMPLE
	tools/buildcp
Misc touchup after purging msil/fjbg/genjvm.
Surgery on MANIFEST.MF.

Apparently this thing depends on trailing spaces because
I can't change it in my trailing-space-stripping editor
without the build failing with this informative message:

  BUILD FAILED
  /scala/trunk/build.xml:1403: Existing manifest /scala/trunk/build/pack/META-INF/MANIFEST.MF is invalid

The whole diff between working and not working is whitespace:

--- i/META-INF/MANIFEST.MF
+++ w/META-INF/MANIFEST.MF
@@ -4,11 +4,11 @@ Bundle-Name: Scala Distribution
 Bundle-SymbolicName: org.scala-ide.scala.compiler;singleton:=true
 Bundle-Version: 2.10.0.alpha
 Eclipse-LazyStart: true
-Bundle-ClassPath:
+Bundle-ClassPath:
  .,
  bin,
  lib/jline.jar,
-Export-Package:
+Export-Package:
  scala.tools.nsc,
  scala.tools.nsc.ast,
  scala.tools.nsc.ast.parser,
@@ -45,7 +45,7 @@ Export-Package:
  scala.reflect.runtime,
  scala.reflect.internal.transform,
  scala.reflect.api,
-Require-Bundle:
+Require-Bundle:
  org.apache.ant,
  org.scala-ide.scala.library
-
+
Restore unmangling but add -raw; massage options to support
tool args like -raw and combined -pv, and not pass through
arbitrary options.

If class arg fails, try it as a live term and use its
enclosing class, to support "def m = 7; javap m". That
might be more fun with filtering (to see only m). This
saves having to know the line and iw's. There are no
doubt more fun features for another rainy day. And it
will rain again someday.
Small cleanup work done during my initial visits to the code.

These are just a series of small cleanups I did while reading
the code base during my first few days. None are actual
functionality bugs and none warrant a full blown bug. Now
that I'm moving on to doing real work small stuff like this will
likely be swept up in other bugs, so this commit just captures
that initial pass of stuff.
Support "javap -" for lastvar, move JavapTool into JavapClass.

The notation "javap -" is actually pretty handy, in particular
as a shorthand for javap resN.

JavapClass knows if it has an intp, for purposes of names and
for output; so the special tryClass impl is refactored to the
tool; the special handling for "-" as well. It just uses IMain
for withoutUnwrapping, so that method is unadded from ISettings.

(The tryClass/tryFile template methods are handy but maybe
passing a func to JavapClass.apply would be cleaner; similar
for writer output and whatever magic it enables.)
SI-5858 xml.Node construction ambiguity is gone.

Test case to show that the fix for SI-5859 saves the day.
Merge pull request #1724 from paulp/merge-msil-genjvm-delete

Merge msil and genjvm deletions.
Merge pull request #1730 from JamesIry/smallcleanup

Small cleanup work done during my initial visits to the code.
Merge pull request #1588 from Atry/patch-1

Treat name in getResourceAsStream as resource path
Merge pull request #1731 from retronym/ticket/5858

SI-5858 xml.Node construction ambiguity is gone.
Merge pull request #1719 from andriyp/ticket/5841-clean

SI-5841 reification of renamed imports