Improve efficiency of updated

Added utility method to create a HashTrieSet with two leaf HashSets with different hash
Used said utility method instead of creating a temorary HashTrieSet with an empty elems array
Added assertions to HashTrieSet to validate tree
Added test that should cover all code paths of the changes done in SI-6220

This test will pass even with an older version of the scala library, since as mentioned this is just a performance improvement.
Prevent creation of a HashMapCollision1 with one element
Prevent creation of a HashTrieMap with one child unless the child is a HashTrieMap itself
Remove unnecessary check for merger eq null

While we still have to check for merger eq null in updated0 because updated0 gets called with a nu
Move code to create two-element HashTrieMap into utility method and make use of it from HashMapCollision1.updated0 as well
Check if subNew is the only child and if it is a leaf.

If this is the case we must return subNew because a HashTrieMap with one leaf element is not allowed by the assertions
Rewrote makeHashTrieMap so that objects are created in a consistent state

The old approach first created a broken HashTrieSet (with elems(0) == null) and then fixed it afterwards by assigning elems(0) from the outside. But that won't work with the assertion.

The new method is recursive, but the maximum recursion depth is 7, and on average the method won't recurse at all.
Added assertions for tree consistency
Added test that tests that correct classes are being created when removing elements
Extended test to also check proper handling of collisions
PartialFunction polishing

- ScalaDocs added
- TODOs fixed
- controversive method `run` deleted
- not used class runtime.AbstractTotalFunction removed
- small corrections & fixes
- tests for `orElse` & `runWith`
pull request feedback

Added note about role of `fallback_pf` in the implementation
SI-6258 Reject partial funs with undefined param types

This regressed with virtpatmat.

With -Xoldpatmat, pattern matching anonymous functions with
an expected type of PartialFunction[A, B] are translated to
a Function tree, and typed by typedFunction, which issues an
error of the parameter types are not fully defined.

This commit adds the same check to MatchFunTyper.

It doesn't plug the hole in RefChecks#validateVariance (which is
reminiscent of SI-3577.) Seems to me that in general one should handle:
  a) both BoundedWildcardType and WildcardType
     when in a place that can be called during inference, or
  b) neither otherwise
Deprecate unmaintained/old classes for removal in 2.11
Made ListMap.tail O(1) instead of O(N)

That way it is possible to check if a ListMap has one element by checking x.tail.isEmpty. Size is O(1), so size==1 won't do!
Added test to ensure that ListMap.tail is O(1)
SI-6280 Scaladoc: Reloading preserves anchors

Scaladoc redirects from */package.html pages to index.html with the
qualified package name as the anchor. This is done to pop up the left
navigation panel whenever someone links directly to the page. (so
users may navigate the rest of the scaladoc pages)

When linking members directly, one can use */package.html#<signature>,
which translates to index.html#*.package@<signature>. The problem was
that the redirection javascript did not take the <signature> into
account, so it would redirect to the top of the package page instead
of scrolling to the member.

Note: this is a layout change, so there's no test for it.
Add missing tests for SI-6190

This was silently fixed in commit
3cb0e784a05db7d0b542cec9bf4c5fbf3772a6cf but no test was added.
removes Symbol.kind and Type.kind

use Universe.showRaw instead:

scala> import scala.reflect.runtime.{universe => ru}
import scala.reflect.runtime.{universe=>ru}

scala> ru.showRaw(typeOf[Int])
res0: String = TypeRef(ThisType(scala), scala.Int, List())

scala> ru.showRaw(typeOf[Int].typeSymbol, printKinds = true)
res1: String = scala.Int#CLS