Fixes SI-4929, with a test to verify.

Also fixes potential issue with Parsers.phrase not being reentrant; however, I was unable to actually reproduce this issue in practice. (The order in which lastNoSuccess was being set and compared seemed to guarantee that it would never actually be a problem).
Fix for broken non-local returns.

Don't change the owner of a return if the new owner is nested
inside the old owner.  Closes SI-5612.
Fix for one of the oldest open soundness bugs.

Closes SI-963, since it was one of my random 30 it won the prize.
The trick after adding the stability check (which has been sitting
there commented out for 3+ years) was that implicit search depended
on the wrongness, because memberWildcardType would create scopes
with members of the form

  ?{ val name: tp }

And since a def shouldn't match that, fixing it broke everything
until I flipped it around: memberWildcardType should be seeking

  ?{ def name: tp }

It could also search for a mutable value: the relevant quality
is that it not be stable so it doesn't have a tighter type than
the members it hopes to match.
Fix for si-5018.

Methods keySet, values and withDefault now return serializable collections.
run patmat after typer, but not *right* after

sbt needs that spot right after type for its phase xsbt-api
Fix for si-5590.
Fix for si-5577.
Fixes si-5656.
Merge pull request #472 from adriaanm/topic/virtpatmat

run patmat after typer, but not *right* after
Fixes SI-5514.

The acceptIf and acceptMatch parsers now check for end of input.

Review by moors.
Merge commit 'refs/pull/471/head'; commit 'refs/pull/473/head'; commit 'refs/pull/474/head'; commit 'refs/pull/475/head'; commit 'refs/pull/476/head' into develop
Reluctant surgery on partest.

Now neg tests are treated like all the other tests in terms
of grouping, so if you have a negative test which requires more
than one pass (like the one enclosed with the next commit) you
can actually test it.
Updated Symbol to record classfile origin.

This change should be transparent to anything using sourceFile,
unless it was drinking from the inheritance well too deeply. Rather
than squander the already allocated field for every ClassSymbol not
being compiled from source, I'm now populating it with the file
representing the class. This will make a broad range of things easier,
like debugging, issuing useful error messages, symbol invalidation,
signature verification, you name it.

  def sourceFile      - still returns only source code files
  def binaryFile      - returns only class files
  def associatedFile  - returns whatever is there, if anything

Performance: I may be mistaken, but I believe this is a zero-impact
change.  No new fields are allocated; fields which were null now hold
a useful reference.  The reference is to a file instance which was
already being allocated and already long-lived.

Compare error messages:

  // Version 1
  % scalac a.scala
  error: type _$1 is defined twice

  // Version 2
  % scalac a.scala
  error: type _$1 is defined twice
    conflicting symbols both originated in file './foo/package.class'
    Note: this may be due to a bug in the compiler involving wildcards in package objects
  one error found

Bonus for people who read commit logs.  Try this in the repl
after starting power mode.

ListClass.info.members groupBy (_.associatedFile) foreach {
  case (k, vs) => println("%s\n  %s\n".format(k, vs map (_.defString) mkString "\n  "))
}
Have ArrayCharSequence reuse its Array.

Your know, for performance.  Closes SI-5641.
Put corresponds on Iterator.

I guess we can look forward to more and more duplication in the
collections. I had to cut and paste the doc comment too, or at least
I have no idea how to avoid that given the file I took it from was in
parallel somewhere.
Removed some tests for a "not a bug".
A couple checkfile updates which snuck by.
Working around the VerifyErrors.

Since the optimizer seems to have lost its mind.
What did you bring me Santa?

Oh boy, a checkfile! This is the best christmas ever!
Test case closes SI-1785.