SI-2066 Plug a soundness hole higher order type params, overriding

PolyType-s parameterized by higher order type parameters (HOTPs)
should only be relatable with <:< or =:= if the variances of their
type parameters line up. This is only enforced for HOTPs defined in
method type arguments.

Invariant type parameters subsume variant ones. Concretely, as
described by @S11001001:

> A method taking [F[_]] can implement a method taking [F[+_]].
> Likewise, a method taking [F[_[+_]]] can implement a method
> taking [F[_[_]]], as with [F[_[_[_]]]] implementing [F[_[_[+_]]]],
> and so on, the variance subsumption flipping at each step.
>
> This is just the opposite of the variance for passing type
> parameters to either instantiate types or call methods; a F[+_]
> is a suitable F[_]-argument, a F[_[_]] a suitable F[_[+_]]-argument,
> and so on.
>
> All of the above rules can be duplicated for contravariant positions
> by substituting - for +. Also, something similar happens for
> weakening/strengthening bounds, I believe.

These cases are tested in the `// okay` lines in `neg/t2066.scala`.
SI-8046 Fix baseTypeSeq in presence of type aliases
Pending test for SI-6161

Not solved with base type dealiasing
SI-8046 Only use fast TypeRef#baseTypeSeq with concrete base types

We can only compute the base type sequence (BTS) of a `TypeRef` by
element-wise transforming the BTS of the referenced symbol if
there are no abstract types in its BTS type symbols.

In the now-working test case, `pos/t8046.scala`, the difference
between the old and new calculation of the BTS is:

    this                 = Three.this.Alias[Int]
    sym.info.baseTypeSeq = BTS(One.this.Op[A],Any)
    mapped BTS           = BTS(Three.this.Op[Int],Any)
    full BTS             = BTS(Three.this.Op[Int],Int => Int,Object,Any)

The change to account for PolyType in ArgsTypeRef#transform is now
needed to avoid the full BTS of:

    BTS(Three.this.Op[A],A => A,Object,Any)

Interestingly, everything actually works without that change.
SI-7680 Update the ScalaDoc entry page of the Scala library
SI-6364 SetWrapper does not preserve performance / behavior

O(n) performance of wrapped set contains was the problem.

Added overrides for contains and isEmpty to SetWrapper.  Note that sets are
invariant in Scala, while the Java signature is for any Object, so we trap
a ClassCastException if one occurs.  (Is this everything that could possibly
go wrong?  I think so, but am not as confident as I would like.)
SI-6615 PagedSeq's slice throws a NPE if it starts on a page that hasn't been computed yet

Made sure to addMore when roving forward on a slice into unpaged territory.
SI-4841 CLI help update for -Xplugin

The argument to `-Xplugin` is now a comma-separated list of paths.
This commit updates the option descriptor and a code comment.
Fixes #3330 with Scaladoc changes only
SI-8129 Plug a leak in perRunCaches

I guess we've never leaned to heavily on these, because the
registry of caches was forgetting about most of them
immediately if they compared == at the point of creation.

Consequently, maps like `treatedInfos` in Mixin were holding
onto old types and symbols and leaking memory.

You can reproduce the leak with:

	(for i in {1..200}; do echo src/library/scala/collection/*.scala; done; printf "\n") | scalac-hash v2.11.0-M7 -J-Xmx256M -Xresident

	nsc> warning: there were 6 deprecation warning(s); re-run with -deprecation for details

	(... 15 times)

	nsc> java.lang.OutOfMemoryError: GC overhead limit exceeded
	Dumping heap to java_pid90362.hprof ...
	Heap dump file created [340635728 bytes in 7.993 secs]
	^CException in thread "main" java.lang.OutOfMemoryError: GC overhead limit exceeded

As a consequence of this change, I had to remove eager clearing of the
uniques types cache. The comment in the code elaborates further.
Merge pull request #3346 from retronym/ticket/8129

SI-8129 Plug a leak in perRunCaches
Merge pull request #3335 from swartzrock/master

Fixes #3330 with Scaladoc changes only
Merge pull request #3290 from soc/SI-7680

 Update the ScalaDoc entry page of the Scala library
Merge pull request #3302 from Ichoran/issue/6364

Resolves SI-6364, O(n) performance of wrapped set contains.
Merge pull request #3303 from Ichoran/issue/6615

Fixes SI-6615, NPE on slice of PagedSeq.
Merge pull request #3184 from retronym/ticket/2066

SI-2066 Plug a soundness hole higher order type params, overriding
Merge pull request #3242 from retronym/ticket/8046

SI-8046 BaseTypeSeq fixes with aliases
Merge pull request #3334 from som-snytt/issue/4841-help

 CLI help update for -Xplugin