SI-7781 REPL stack trunc shows cause

The handy stack trace truncation in REPL doesn't
show cause like a regular trace.

This commit fixes that and also adds the usual
indicator for truncation, viz, "... 33 more".

The example from the ticket produces:

```
scala> rewrapperer
java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: Point of failure
  at .rewrapper(<console>:9)
  at .rewrapperer(<console>:10)
  ... 32 elided
Caused by: java.lang.RuntimeException: java.lang.RuntimeException: Point of failure
  at .wrapper(<console>:8)
  ... 34 more
Caused by: java.lang.RuntimeException: Point of failure
  at .sample(<console>:7)
  ... 35 more
```

Suppressed exceptions on Java 7 are handled reflectively.

```
java.lang.RuntimeException: My problem
  at scala.tools.nsc.util.StackTraceTest.repressed(StackTraceTest.scala:56)
  ... 27 elided
  Suppressed: java.lang.RuntimeException: Point of failure
    at scala.tools.nsc.util.StackTraceTest.sample(StackTraceTest.scala:29)
    at scala.tools.nsc.util.StackTraceTest.repressed(StackTraceTest.scala:54)
    ... 27 more
```
Target junit.clean to clean junit artifacts

And all.clean will also junit.clean.
SI-7781 Improve test and add comment

The test should normalize the elided message,
not strip it. (Thanks qerub; I was frustrated
with kitteh's turnaround that night, hence
unwilling to improve once it passed.)
SI-7781 Comments to SessionTest

Also, it would be nice if code and expected results were
calculated lazily. That would allow tests with infinite
code but which terminate on various conditions.
Merge pull request #2877 from som-snytt/issue/repl-stack-trunc

SI-7781 REPL stack trunc shows cause
add toolbox-based utility methods to quasiquotes' tests
refactor definition tests into separate subsuite
add missing copyTypeDef utility function
rename mkAnnotationCtor into mkAnnotation
merge flagsFromBits and FlagsAsBits into FlagsRepr
use NoMods and NoFlags for reification of empty values
move mkNew from tools.nsc.ast.TreeGen to reflect.internal.TreeGen

This is needed for quasiquotes to implement SyntacticNew combinator.
minor changes to TreeGen.mkTemplate

1. Make superPos parameter optional with default value NoPosition
2. use Option instead of List for local optional constructor variable
reduce amount of clutter on -Yquasiquote-debug
SI-7196 add support for refineStat splicing and extraction
refine block and applied/typeapplied splicing/matching semantics

1. blocks now match single term-level expressions to account for
   automatic block elimination. E.g.

   val q"{ ..$stats }" = q"foo"

   will match into stats = List(q"foo"). This is useful to uniformly
   deal with blocks on term level.

2. blocks in quasiquotes collapse into single expressions

3. Applied and TypeApplied now have constructors too which helps
   to unify matching and extraction in quasiquote reifier

4. TypeApplied now matches AppliedTypeTree too

5. Add Syntactic prefix to Applied and TypeApplied
reify ScalaPackage symbol with the help of ScalaDot
add support for function type splicing and extraction
first-class early def splicing and extraction support
SI-7803 support for matching of anonymous function literals