more ListOfNil => Nil

Even more trees (together with Apply nodes produced by templateParents
and New nodes produced by New in TreeBuilders) now distinguish nullary
argument list from empty argument list.
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.
SI-6766 Makes the -Pcontinuations:enable flag a project specific preference

Make the continuations plugin flag specific to the continuations library.
Remove the documentation about adding the continuation plugin from
the eclipse README.md.

One consequence of this change is that if a programmer has prefs
for the continuations eclipse project then there will be a merge conflict.
That's unavoidable without having a more sophisticated way  to build
the eclipse projects.
SI-6548 reflection now correctly enters jinners

When completing Java classes, runtime reflection enumerates their
fields, methods, constructors and inner classes, loads them and
enters them into either the instance part (ClassSymbol) or the
static part (ModuleSymbol).

However unlike fields, methods and constructors, inner classes don't
need to be entered explicitly - they are entered implicitly when
being loaded.

This patch fixes the double-enter problem, make sure that enter-on-load
uses the correct owner, and also hardens jclassAsScala against double
enters that can occur in a different scenario.

Since the fix is about Java-compiled classes, the test needs *.class
artifacts produced by javac. Therefore I updated javac-artifacts.jar to
include the new artifacts along with their source code.
cosmetic renamings in runtime reflection

initClassModule => initClassAndModule
createClassModule => initAndEnterClassAndModule
SI-5789 Removes assertion about implclass flag in Mixin.scala

The assertion that the class being mixed from should be an implclass
seems reasonable, but the flag isn't always set. In order to stop the
bleeding this fix turns the assertion into a debug warning. Issue SI-6782
will track figuring out the root cause of the missing flag.
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.
Merge pull request #1721 from JamesIry/SI-6766_2.10.x

SI-6766 Create a continuations project in eclipse
SI-5789 Checks in the right version of the test

In my other commit I had a version of the test that didn't
actually reproduce the problem because it didn't set the
optimize flag
Merge pull request #1654 from scalamacros/ticket/6696

SI-6696 removes "helper" tree factory methods
Merge pull request #1668 from scalamacros/topic/pre-typemacros

refactors handling of parent types
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-5789 Use the ReplTest framework in the test

Don't check for the crashed message, just dump the output
from the REPL. Use the ReplTest framework to the make
the test clean
SI-5858 xml.Node construction ambiguity is gone.

Test case to show that the fix for SI-5859 saves the day.
SI-6690 Release reference to last dequeued element.

Avoids leaks in MutableList and its more better known child,
mutable.Queue, when the last element is dequeued or when we
take the tail of a one element collection.

Refactors copy/pasted code between the two implementations of
tail.
SI-6614 Test case for fixed ArrayStack misconduct.

Not sure when it was fixed, but in 2.9.2 things were
messed up:

    scala> (for (i <- 0 to 10) yield { val in = ArrayStack.tabulate(i)(_.toString); (in, (in filter (_ => true)) == in) }).mkString("\n")
    res14: String =
    (ArrayStack(),true)
    (ArrayStack(0),true)
    (ArrayStack(0, 1),true)
    (ArrayStack(1, 2, null),false)
    (ArrayStack(0, 1, 2, 3),true)
    (ArrayStack(3, 4, null, null, null),false)
    (ArrayStack(2, 3, 4, 5, null, null),false)
    (ArrayStack(1, 2, 3, 4, 5, 6, null),false)
    (ArrayStack(0, 1, 2, 3, 4, 5, 6, 7),true)
    (ArrayStack(7, 8, null, null, null, null, null, null, null),false)
    (ArrayStack(6, 7, 8, 9, null, null, null, null, null, null),false)
SI-6555 Better parameter name retention

We were losing track of parameter names in two places:

  1. Uncurry was using fresh names for the apply method
     parameters during Function expansion. (The parameter names
     in the tree were actually correct, they just had synthetic
     symbols with "x$1" etc.)
  2. When adding specialized overrides, the parameter names
     of the overriden method were used, rather than the parameter
     names from the overriding method in the class to which we are
     adding methods.

The upshot of this is that when you're stopped in the debugger in
the body of, say, `(i: Int) => i * i`, you see `v1` rather than `i`.

This commit changes Uncurry and SpecializeTypes to remedy this.
DRYer crash reports.

 - Add the supplementary message only once per run, so we don't
   output the same information as we bubble up through a sequence
   of well-intentioned exception handlers.
 - In Driver, don't report message of a `FatalException`
   immediately after reporting the message and stack trace.
    - Rename `logThrowable` to `reportThrowable`, which is what it
      actually does.

The difference in output is visible:

  https://gist.github.com/4242138
Merge pull request #1724 from paulp/merge-msil-genjvm-delete

Merge msil and genjvm deletions.
s/SuperCallArgs/SuperArgs/

Applies a minor renaming that I failed to thoroughly perform
in the last pull request which refactored parent types.