SI-4976 Scaladoc: Add a source link to package objects
SI-5313 Do not eliminate stores that potentially wipe referenes

Storing to local variables of reference or array type is indirectly
observable because it potentially allows gc to collect an object. So
this commit makes DeadCodeElimination mark a store necessary if it
assigns to a local that potentially stored by a previous necessary store.
SI-5313 Eliminate more stores by replacing clobbers with null stores

When an unused store clobbers a previous store, replace it with storing
a null. Don't mark clobbers as "used" so that the original clobber and
all following clobbers can still be eliminated.
SI-7046 reflection now auto-initializes knownDirectSubclasses

knownDirectSubclasses joins the happy family of flags, annotations and
privateWithin, which automatically trigger initialization, when used
within runtime reflection.
bytecode diffing support in ByteCodeTest

use sameByteCode(methodNode1, methodNode2) to check methods
compile to identical bytecode (line number info is not taken into account)
support testing bytecode similarity in ByteCodeTest

one similarity measure comes free of charge: it ignores which variable
is stored/loaded, everything else must be identical

like this: `similarBytecode(methNodeA, methNodeB, equalsModuloVar)`

also implemented prettier diffing
refactor: prepare null check redundancy analysis

this commit doesn't change any behavior
no null check for type-tested unapply arg

pattern matching on case classes where pattern
is not known to be a subclass of the unapply's argument type
used to result in code like:

```
if (x1.isInstanceOf[Foo]) {
  val x2 = x1.asInstanceOf[Foo]
  if (x2 != null) { // redundant
    ...
  }
}
```

this wastes byte code on the redundant null check
with this patch, when previous type tests imply
the variable cannot be null, there's no null check
don't store subpats bound to underscore

also, tweak fix in place for SI-5158 to appease SI-6941
don't store mutable fields from scala.* as we can assume
these classes are well-behaved and do not mutate their
case class fields
no type test if static type <:< primitive value class
SI-6686 drop valdef unused in flatMapCond's block
SI-6941 tests

tests that the methods' bytecodes are similar
as variable load/stores are reordered, it ignores which variables
are modified when checking for bytecode equality

the assert is: `similarBytecode(methNodeA, methNodeB, equalsModuloVar)`
SI-7029 - Makes sure that uncaught exceptions are propagated to the UEH for the global ExecutionContext
SI-7029 - Make test more robust
[backport] SI-6482, lost bounds in extension methods.

Squashed commit of the following:

commit 5c156185306ba797c0443d9dccae0ae7ce462a1f
Author: Paul Phillips <paulp@improving.org>
Date:   Sat Oct 6 15:42:50 2012 -0700

    A little more housecleaning in ExtensionMethods.

    The only real contribution is readability.
    (cherry picked from commit 61f12faacaaccf366f9211ba6493fb042a91f1d2)

    Conflicts:
    	src/compiler/scala/tools/nsc/transform/ExtensionMethods.scala

commit 79f443edf584745d614e24fb9ca6644c6b18d439
Author: Paul Phillips <paulp@improving.org>
Date:   Sat Oct 6 14:22:19 2012 -0700

    Incorporated pull request feedback.
    (cherry picked from commit 153ccb4757718cceb219988f30381f73362e6075)

commit 707f580b0cdcb01e27ca4c76991dea427945b5bd
Author: Paul Phillips <paulp@improving.org>
Date:   Sat Oct 6 10:20:45 2012 -0700

    Fix for SI-6482, lost bounds in extension methods.

    That was a good one. How to create a new method with type
    parameters from multiple sources, herein.
    (cherry picked from commit ff9f60f420c090b6716c927ab0359b082f2299de)

commit 8889c7a13f74bc175e48aa2209549089a974c2af
Author: Paul Phillips <paulp@improving.org>
Date:   Fri Oct 5 22:19:52 2012 -0700

    Responded to comment about how many isCoercibles there are.

    I make the case that there is only one.
    (cherry picked from commit 883f1ac88dd7cec5882d42d6b48d7f267d1f6e00)
SI-7022 Additional test case for value class w. bounds

As reported against 2.10.0, and as fixed by SI-6482,
which was backported in the previous commit.
SI-5313 Test clobbers on the back edge of a loop

I realized I was missing a test case for a local store early in a loop
that was unused but turned out to be a clobber of a store later in the
loop.
SI-5313 Minor code cleanup for store clobbering

Used withDefault on the localStores map to simplify the code. Added
a type alias for the (BasicBlock, Int) tuple type that was used
throughout the code to represent the location of an instruction.
Merge pull request #2044 from phaller/issue/7029

SI-7029 - Makes sure that uncaught exceptions are propagated to the UEH ...
Merge pull request #1911 from kzys/jira-4976

SI-4976 Scaladoc: Add a source link to package objects