Extract isStable and isVolatile from Type.

As with finalResultType, this is easier to control
and WAY easier to understand. Look, all the relevant
code fits on half a screenful rather than being
spread out over 5000 lines and you have to be
constantly conscious of what is overriding what.

Truly it would be hard to damn the indiscriminate
use of subtype polymorphism any more soundly than
does this, by way of contrast:

  def isStable(tp: Type): Boolean = tp match {
    case _: SingletonType                             => true
    case NoPrefix                                     => true
    case TypeRef(_, NothingClass | SingletonClass, _) => true
    case TypeRef(_, sym, _) if sym.isAbstractType     => tp.bounds.hi.typeSymbol isSubClass SingletonClass
    case TypeRef(pre, sym, _) if sym.isModuleClass    => isStable(pre)
    case TypeRef(_, _, _) if tp ne tp.dealias         => isStable(tp.dealias)
    case TypeVar(origin, _)                           => isStable(origin)
    case AnnotatedType(_, atp, _)                     => isStable(atp)    // Really?
    case _: SimpleTypeProxy                           => isStable(tp.underlying)
    case _                                            => false
  }

That's all of it! If there are bugs in it (of course there are)
some might even be found now.
SI-7895 Avoid cascade of "symbol not found" in pattern matches

If we can't type check the `Foo` in `case Foo(a, b) => (a, b)`,
we should enter error symbols for `a` and `b` to avoid further
errors being reported in the case body.
SI-7895 Issue all buffered errors after silent mode.

Rather than just the first.

For example, `foo(wizzle, wuzzle, woggle)` should report all three
not-found symbols.
SI-7902 Fix spurious kind error due to an unitialized symbol

Tracked down this error:

    <none> is invariant, but type Y2 is declared covariant
    <none>'s bounds<notype> are stricter than type X2's declared bounds >: Nothing <: Any, <none>'s bounds<notype> are stricter than type Y2's declared bounds >: Nothing <: Any

to `Symbol#typeParams` returning `List(NoSymbol)` if the symbol
was not initialized.

This happends in the enclosed test for:

    // checkKindBoundsHK()
    hkArgs   = List(type M3)
    hkParams = List(type M2)

This commit forces the symbol of the higher-kinded type argument
before checking kind conformance.

A little backstory:

The `List(NoSymbol)` arises from:

    class PolyTypeCompleter... {
      // @M. If `owner` is an abstract type member, `typeParams` are all NoSymbol (see comment in `completerOf`),
      // otherwise, the non-skolemized (external) type parameter symbols
      override val typeParams = tparams map (_.symbol)

The variation that triggers this problem gets into the kind
conformance checks quite early on, during naming of:

    private[this] val x = ofType[InSeq]

The inferred type of which is forced during:

    def addDerivedTrees(typer: Typer, stat: Tree): List[Tree] = stat match {
      case vd @ ValDef(mods, name, tpt, rhs) if !noFinishGetterSetter(vd) =>
        // If we don't save the annotations, they seem to wander off.
        val annotations = stat.symbol.initialize.annotations
SI-7985 Typecheck args after failure to typecheck function

`missing1.foo(missing2)` now reports `missing1` and `missing2` as
not found. Previously, only the first was reported.

The arguments are typed with an expected type ErrorType. We propagate
this through as the inferred type of anonymous function parameters
to avoid issuing cascading "missing parameter type" errors in code
like:

    scala> Nil.mapp(x => abracadabra)
    <console>:8: error: value mapp is not a member of object Nil
                  Nil.mapp(x => abracadabra)
                      ^
    <console>:8: error: not found: value abracadabra
                  Nil.mapp(x => abracadabra)
                                ^

This was in response to unwanted changes in the output of existing
neg tests; no new test is added.

Similarly, we refine the errors in neg/t6436b.scala by to avoid
cascaded errors after:

    type mismatch; found: StringContext, required: ?{def q: ?}
An ant property to skip building docs

It can be situationally useful to run:

    ant -Dskip.docs=1 dist-maven

When troubleshooting problems that require creation of
a distribution, such as pr-integrate-partest.

Scaladoc isn't incremental, so you burn
a few minutes for a single file change to the compiler or
library.
SI-7239 A bonus test case from [scala-user]

Thanks to Ilya Denisov for another sample [1] that progressed
with the fix for SI-7239, 174334b.

  [1] https://groups.google.com/forum/#!topic/scala-user/8rZeCeiTYDo
Merge pull request #3021 from paulp/pr/is-he-stable-or-is-he-volatile

Extract isStable and isVolatile from Type.
Merge pull request #3025 from retronym/ticket/7902

SI-7902 Fix spurious kind error due to an unitialized symbol
Merge pull request #3024 from retronym/ticket/7895

SI-7895 Error reporting: avoid cascading, truncation
Merge pull request #3032 from retronym/ticket/7239-test

SI-7239 A bonus test case from [scala-user]
Merge pull request #3031 from retronym/topic/skip-doc

An ant property to skip building docs