Merge branch '2.10.2' into 2.10.3

Conflicts:
	src/compiler/scala/tools/nsc/typechecker/NamesDefaults.scala
Merge pull request #2878 from JamesIry/2.10.3

Merge 2.10.2 into 2.10.3
Merge remote-tracking branch 'origin/2.10.x' into merge/2.10.x-to-2.10.3
SI-7815 Dealias before deeming method type as dependent

To enable eta-expansion of method types seen from a prefix that
renders the result type as independent from the parameter symbols.

The enclosed test shows that we dealias types before checking
dependence, and that we do this deeply (e.g. type arguments are
also dealised.)

An existing test, neg/error_dependentMethodTpeConversionToFunction,
confirms that bona-fide dependent methods are still prohibited from
eta expansion.
SI-7825 Consider DEFAULTMETHOD when refchecking concreteness

A class should not be required to implement a Java default method.

This commit uses `isDeferredNotDefault` in place of `isDeferred`
when finding unimplemented methods.

The test itself does not depend on Java 8 as we use scalac's
Java source parser to set things up.
SI-7398 Enable test for Java 8 source parser under Java 8

There is no need to skip it as it only depends on our changes
to our JavaParser, and not on any bytecode features of Java 8.
Merge pull request #2923 from retronym/ticket/7825

SI-7825 Consider DEFAULTMETHOD when refchecking concreteness
Merge pull request #2882 from adriaanm/license-cleanup-2.10.x

Change Scala license to unmodified 3-clause BSD.
Merge pull request #2893 from adriaanm/backport-2880-2.10.x

update typesafe.artifactory-online.com to private-repo
Merge remote-tracking branch 'origin/2.10.x' into merge/2.10.x-to-2.10.3
Merge pull request #2906 from retronym/merge/2.10.x-to-2.10.3

Merge/2.10.x to 2.10.3
Fix typo in documentation.
SI-7852 Test to show the status quo bytecode for "" == ...

Will be somewhat leaner after the next commit.
SI-7852 Omit null check for "".==

Although the same the code would be later optimized by -Yconst-opt,
we can offer the same lean byte code to those compiling without that
option by being more discerning when translating ==.

This helps people using bytecode based code coverage tools
such as jacoco that would emit "branch not covered" warnings
for the impossible null check.
SI-7852 Test to show status quo of for SomeModule.==

For which we can also elide the null check, and will in the
next commit.
SI-7848 Xlint says what looks interpolated

The motivating use case was an Expecty debug string
getting flagged for `$eq`.

The test case demonstrates a different bug, in which
the position of the literal tree is changed when typer
gets rid of the unused local, so that when the tree is
re-typed in erasure, a second, spurious warning is
emitted at the start of the method. Specifically, the
second warning is not suppressed because of the
different position.
SI-7852 Omit null check for SomeModule.==

For the same reasons outlined in the previous commits.
SI-7852 Refactor null-elision tests to be more focussed

 - Directly count null checks, rather than diffing the textual
   bytecode of the entire method
 - Add a test to show that the LHS needs to be a direct module
   reference, not just a tree with a module type, to elide the
   null check.
add syntactic extractor for assignment-like trees

There are three kinds of assign-like trees:

1. Assign(lhs, rhs)                          // $lhs = $rhs
3. AssignOrNamedArg(lhs, rhs)                // $lhs = $rhs
2. Apply(Select(f, nme.update), args :+ rhs) // $f(..$args) = $rhs

New syntactic combinator unifies all of them and lets users not to think
about these implementations details.
SI-7855 No missing interpolator warning post-typer

Avoid extra work, extra warnings.