Reduce visibility of implicit class tags.

500 lines of generated boilerplate is *impossible to maintain*.
Generated code of this kind should never be allowed.

Three lines of documentation, duplicated 100 times, cannot
masquerade as three hundred lines of documentation. If someone
knows to look at the documentation of implicit ClassTags,
they *already know* about implicit ClassTags. It is wherever
"match" is documented which needs this information (and I am
sure we can express it more clearly, given the luxury of
only saying it once.)

Documenting each ClassTag with the same boilerplate is
comparable in utility to attaching such text to every Int.
"An Int is a whole number within the range -2147483648 to
2147483647 inclusive. It's usually used to represent how
many of something there are, such as '5 bunnies' or '3
witty commit messages', but you can store about anything
in an Int if you can fit it into 32 bits."

We don't do that, because you're expected to discover what
an Int is in a manner which generalizes to all the Ints you
may encounter. The situation with implicit ClassTags is
immediately analogous.
Merge remote-tracking branch 'origin/2.10.x' into merge-2.10.x

* origin/2.10.x:
  if starr.use.released fetch Scala ${starr.version} for STARR
  assume build.release when maven.version.suffix is set
  make quick.done depend on quick.bin again
  SI-7321 Memory leak in specialize on multiple compiler runs.
  Take the N^2 out of the compiler's TreeSet.
  SI-6900 Fix tailrec for dependent method types
  Simplify interplay between Uncurry Info- and Tree-Transformers
  Refactor existential related code out of types.
  Add a cautionary comment to TreeSymSubstitutor.
  SI-6715 Shouldn't return "" from TermNames.originalName
  Backport #2289's TermNames.unexpandedName as TermNames.originalName
  SI-7147 Diagnostic for unexplained assertion in presentation compiler.
  SI-6793 Don't use super param accessors if inaccessible.
  Correct sorting example for Ordering in scaladoc

Conflicts:
	bincompat-backward.whitelist.conf
	bincompat-forward.whitelist.conf
	build.xml
	src/compiler/scala/tools/nsc/transform/UnCurry.scala
	src/reflect/scala/reflect/internal/StdNames.scala
Merge pull request #2375 from paulp/merge-2.10.x

Merge 2.10.x into master.
Merge pull request #2373 from paulp/pr/implicit-tags

Reduce visibility of implicit class tags.
SI-6815 untangle isStable and hasVolatileType

`Symbol::isStable` is now independent of `Symbol::hasVolatileType`,
so that we can allow stable identifiers that are volatile in ident patterns.

This split is validated by SI-6815 and the old logic in RefChecks,
which seems to assume this independence, and thus I don't think ever worked:

```
if (member.isStable && !otherTp.isVolatile) {
  if (memberTp.isVolatile)
    overrideError("has a volatile type; cannot override a member with non-volatile type")
```

Introduces `admitsTypeSelection` and `isStableIdentifierPattern` in treeInfo,
and uses them instead of duplicating that logic all over the place.

Since volatility only matters in the context of type application,
`isStableIdentifierPattern` is used to check patterns (resulting in `==` checks)
and imports.