cleans up 82f0925

Updates comments, implements accidentally forgotten IMPLPARAM_TREE,
creates a test to ensure that nothing else is overseen.
SI-7418 Avoid concurrent use of compiler in REPL startup

Enable the tab completer *after* we're finished binding
$intp and unleashing power mode on the asynchronous
REPL startup thread.

Tested manually:
 - run qbin/scala
 - Paste "".toUp
 - Hit <TAB> like a maniac

Before this patch, the crash was reproducible almost every time.
Afterwards, not the once.
Cleanup of crash output.

I finally ran across the assert (or one of them) which
produces such voluminous output that it scares the cattle.
When you see "decls" in an assert, run.

After silencing that, I extended the journey into quieting
the default crash message down, way down. I assume this
will be met only with sighs of relief. And then most
challenging of all for some reason, I convinced it to only
print the information once.

Volume of crash data generated when reproducing the fsc
bug shown below:

  Before this commit  1158 lines
   After this commit    27 lines

Pretty sure there's more information in the 27 lines.
To reproduce the crash:

  fsc src/library/scala/collection/immutable/IntMap.scala
  fsc src/library/scala/collection/immutable/IntMap.scala

The first compile succeeds quietly; the second throws warnings
out of the gate, then crashes. And the "after" output:

  error: Cannot create static reference to method equals because object GenMapLike$class has no source module
  error: fatal error:
       while compiling: /scala/trunk/src/library/scala/collection/immutable/IntMap.scala
          during phase: globalPhase=mixin, enteringPhase=cleanup
       library version: version 2.11.0-20130606-052937-392858b4f6
      compiler version: version 2.11.0-20130606-055515-1856bec71b
    reconstructed args: -d /tmp

    last tree to typer: Ident(key$2)
         tree position: line 377 of /scala/trunk/src/library/scala/collection/immutable/IntMap.scala
              tree tpe: Int
                symbol: value key$2 (flags: <param> <synthetic>)
     symbol definition: key$2: Int (a TermSymbol)
        symbol package: scala.collection.immutable
         symbol owners: value key$2 -> constructor IntMap$$anonfun$unionWith$2 -> anonymous class anonfun$unionWith$2
             call site: object IntMap$Nil in package immutable in package immutable

  == Source file context for tree position ==

     374       }
     375     case (IntMap.Tip(key, value), x) => x.updateWith[S](key, value, (x, y) => f(key, y, x))
     376     case (x, IntMap.Tip(key, value)) => x.updateWith[S](key, value, (x, y) => f(key, x, y))
     377     case (IntMap.Nil, x) => x
     378     case (x, IntMap.Nil) => x
     379   }
     380
fixes a crash on a degenerate macro definition

Previous version of the MacroImplReference extractor didn't take into
the account the fact that RefTree.qualifier.symbol can be null (and it can
be null if RefTree is an Ident, because then qualifier is an EmptyTree).

This led to NPEs for really weird macro defs that refer to local methods
as their corresponding macro impls. Now I check for this corner case,
and the stuff now longer crashes.

This was wrong; this is how I fixed it; the world is now a better place.
unifies handling of T's in various analyses of Foo[T]'s
Merge pull request #2622 from scalamacros/pullrequest/paradise

Backport from paradise/macros
Merge pull request #2638 from paulp/pr/error-output

Cleanup of crash output.
Merge pull request #2627 from retronym/ticket/7418

SI-7418 Avoid concurrent use of compiler in REPL startup
Eliminate needless Options.

Many of our core types have dedicated sentinels which serve
perfectly to communicate "no value", even more perfectly than
None. Saving a billion allocations is gravy.