Merge pull request #2060 from Blaisorblade/topic/2.10.x-fix-bc

Revert "SI-6422: add missing Fractional and Integral alias in scala package"
[nomaster] doesn't touch NonemptyAttachments

NonemptyAttachments in macro API used to be Attachments$NonemptyAttachments.
However it's private, so noone outside scala.reflect.macros can access it,
making it ineligible for the incompatibility criterion.
[nomaster] removes Tree.canHaveAttrs

This forward compatibility fix is very easy. Have a new method in 2.10.1?
Don't expose it in the public API, and you won't have any problems.
[nomaster] revives BuildUtils.emptyValDef

That method was unnecessary in the first place, because we already had
emptyValDef in scala.reflect.api.Trees: https://github.com/scala/scala/blob/v2.10.0/src/reflect/scala/reflect/api/Trees.scala#L2367.
That's a rudiment from the times when we were unsure what to put into
scala.reflect.base and what goes into scala.reflect.api.

Unfortunately, it's not just a harmless extraneous method. Reifier v2.10.0
emits `u.build.emptyValDef` when it needs to reify `emptyValDef`. Therefore
we need to restore it to be forward compatible.

However we don't need to rollback the changes to the reifier v2.10.1,
which now simply calls `u.emptyValDef`, because, as mentioned above,
that `emptyValDef` was already there in v2.10.0.
Merge pull request #1992 from retronym/ticket/7033

SI-7033 Be symful when creating factory methods.
Merge pull request #2040 from scalamacros/ticket/7008

SI-7008 @throws annotations are now populated in reflect
Merge pull request #2048 from dragos/issue/fix-SI-6578

Fix SI-6578. Deprecated `askType` because of possible race conditions in...
Merge pull request #2050 from kzys/jira-6017-v2

SI-6017 Scaladoc: Fix dangling links on index.html
Merge pull request #2063 from retronym/ticket/6667-2.10.x-revert

[nomerge] SI-6667 Demote a new ambiguity error to a lint warning.
Merge pull request #2062 from JamesIry/2.10.x_SI-5833

SI-5833 Fixes tail-of-Nil problem in RefinedType#normalizeImpl
Merge pull request #2051 from adriaanm/ticket-7039

SI-7039 unapplySeq result type independent of subpattern count
[nomaster] Revert "s/SuperCallArgs/SuperArgs/"

This reverts commit 2621918870e531b7a9bcccdf14bddea9b89804b2.
[nomaster] Revert "more ListOfNil => Nil"

This reverts commit bb9adfbd76af0a0281912fcef4bcaca409a7c9a3.
[nomaster] Revert "DummyTree => CannotHaveAttrs"

This reverts commit 838cbe623c142b7005446793948097f679219fe3.

Conflicts:
	src/reflect/scala/reflect/api/Trees.scala
SI-6888 Loosen criteria for $outer search.

In order to cater for nested classes with names that end
with '$', which lead to ambiguity when unmangling expanded
names.

In:

    class X { object $ }

We end up with:

    orginalName(X$$$$$outer) = $$$outer

This change modifies `outerSource` to consider that to be
and outer accessor name. It is a piecemeal fix, and no doubt
there are other nasty surprises in store for those inclined to
flash their $$$ in identifier names, but the method changed is
not used widely and this solves the reported problem.

SI-2806 remains open to address the deeper problem.
SI-7060 More conservative dead code elim marking

In dead code elimination, a DROP instruction that gets marked as useful
and can be reached via several paths needs to also mark all the reaching
definitions as useful, else we'll get unbalanced stacks on the two paths.

A simplistic example:
```
BB1:
  CALL X       // useful, leaves a LONG on the stack
  JUMP BB3

BB2:
  LOAD_FIELD Y // not useful
  JUMP BB3

BB3:
  DROP LONG    // useful because "CALL X" is useful
               // but unless we mark "LOAD_FIELD Y" as useful too
               // we'll get unbalanced stacks when reaching BB3
```

This patch addresses the unbalanced stack problem by adding all the
reaching definitions of a useful DROP as useful instructions too.
SI-6773 Changes IndexSeqFactory to be "since 2.11"

The addition of IndexSeqFactory to 2.10.x branch created a binary
incompatibility so it was removed in that branch before being released.
This commit fixes the since annotation to 2.11 on IndexSeqFactory in the
master branch.
[nomaster] Revert "introduces global.pendingSuperCall"

This reverts commit 0ebf72b9498108e67c2133c6522c436af50a18e8.

Conflicts:
	src/compiler/scala/tools/nsc/typechecker/Typers.scala
	src/reflect/scala/reflect/internal/Trees.scala
[nomaster] Revert "refactors handling of parent types"

This reverts commit 40063b0009d55ed527bf1625d99a168a8faa4124.

Conflicts:
	src/compiler/scala/tools/nsc/ast/parser/Parsers.scala
	src/compiler/scala/tools/nsc/typechecker/Typers.scala
[nomaster] verifies compat with 2.10.0

Makes sure that the compiler understands the 2.10.0 format of super
constructor calls after the recent revert from the typemacro-compatible
format.