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
update typesafe.artifactory-online.com to private-repo
Change Scala license to unmodified 3-clause BSD.

No longer using the slightly reworded 3-clause BSD license.
This does not change the meaning of the license,
just aligns it with the standard wording.
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.
SI-6701 add SYNTHETIC flag to the reflection api
SI-7304 improve deprecation warnings for tree factory methods
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
SI-1909 Move tests from pos to run

When we're in the neighbourhood of VerifyErrors, it's better to run
the code.

This change is leading up to a fix for SI-3832, which regressed
with fix for SI-1909.
SI-3832 Extract tracking of under-construction classes to a mixin

In order to reduce the noise in OuterPathTransformer.
SI-3832 Don't lift methods in aux constructor trailing stats as STATIC

SI-1909 modified LambdaLift to lift in auxiliary constructors methods as STATIC
so they could be called before the self-constructor was called.

That allowed for:

     class Foo (x: Int) {
       def this() = this( {
         def bar() = 5
         bar
       })
    }

However, if the method is in a statement that trails the self constructor call,
this is unnecessary and in fact incorrect as it robs the lifted method of `this`.

This commit uses the machinery established in SI-6666 to limit the STATIC-ness
of lifted methods to those used in arguments for self-constructor calls.

This is used exclusively; the `isAuxillaryConstructor` check wasn't the right
way to solve this, as was seen by the regression it caused in SI-3832.
A new test case shows that we can statically lift methods in super-constructor
calls, rather than just self-constructor calls.

We also have to avoid statically lifting objects in these positions. For now,
I just emit a dev warning that a VerifyError is in your future. With some more
thought we could escalate that to a implementation restriction and emit an error.
SI-7007 Test case shows we disallow premature `this` access

Rather than the old behaviour, which compiled successfully
but led us into the jaws of a LinkageError.

Related to SI-6666.
SI-7223 More finesse in setting INCONSTRUCTOR

It's a clunky flag used to determine very early on whether
we're in the self-call, super-call or early-init section.

In SI-6666 / fd6125428, the check was improved to consider nesting.
But, that caused this regression, as Function's haven't been
translated to classes yet, so our check for enclosing non-term
owners failed wrongly flagged definitins body of a anonymous function
as INCONSTRUCTOR.

With this patch, we correctly flag:

    class C extends D {
      // INCONSTRUCTOR
      () => {
        !INCONSTRUCTOR
      }
      // INCONSTRUCTOR
    }
Merge remote-tracking branch 'origin/2.10.x' into merge/2.10.x-to-2.10.3
SI-6489 parsing in macros should provide proper positions

1. macro parsing doesn't use toolbox any more but calls parser directly

2. in order for this to work parser has to be refactored to limit
   usage of currentUnit and rewire it into parser's local unit
   method which might use currentUnit for some parsers but will
   user proper unit for UnitParser

3. similar change has to be done to make compilation unit's
   reporter overridable