SI-4976 Scaladoc: Add a source link to package objects
SI-6539 moves @compileTimeOnly away from scala-reflect

The move is done to provide forward compatibility with 2.10.0.

The annotation isn't replaced with one of the macro-based solutions
right away (see comments for more information about those), because
we lack necessary tech in 2.10.x.
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
Merge pull request #2019 from scalamacros/ticket/6539

SI-6539 moves @compileTimeOnly away from scala-reflect
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
Merge pull request #2033 from adriaanm/patmat-opt

pattern matching efficiency: addresses SI-6686 and SI-6941, affects SI-5739
Merge pull request #1976 from retronym/backport/1468

[backport] SI-6428 / SI-7022 Value class with bounds
Merge pull request #2022 from lrytz/analyzerPlugins210

Analyzer Plugins
Merge pull request #2039 from scalamacros/ticket/7046

SI-7046 reflection now auto-initializes knownDirectSubclasses