Upgrade pax-url-aether to 1.6.0.

Since our jenkins uses mirrors with passwords,
we needed a fix for https://ops4j1.jira.com/browse/PAXURL-217
in order to run osgi.test on jenkins, now that we use maven more.
We didn't hit this bug before because we were using a standard
location for the maven local repository, but that causes problems
with concurrent jenkins jobs accessing it.

Also, upgrade STARR because Jenkins is using `skip.locker` now.

See https://groups.google.com/d/msg/scala-internals/7R-Y5txP8NI/DX_JWFO2fu4J
for a discussion of the problem this should fix.
more precise isMacroApplication check

Replaces the `symbol.isMacro` check with `symbol.isTermMacro`.
Doesn’t make any difference to trunk but helps a lot with macro annotations.
correctly fails implicit search for invalid implicit macros

There was a rare corner case when implicit search wouldn’t discard
an invalid implicit macro (e.g. the one with mismatching macro impl or
the one with macro impl defined in the same compilation run) during
typechecking the corresponding candidate in typedImplicit1. This is now fixed.
refactor out fresh name prefix extraction logic

1. refactor out FreshNameExtractor out of Quasiquotes cake into
   SymbolTable (can’t put it outside due to the fact that names are
   path-dependent)

2. add optional parameter to the fresh name creator to cover additional
   qq$ prefix needed for quasiquotes

3. add unit tests
Merge pull request #3128 from adriaanm/pax-url-aether-1.6

Upgrade pax-url-aether to 1.6.0.
Remove deprecated constructor from the migration annotation

The migration annotation had a deprecated 2 arg constructor that was
deprecated in 2.10.0. This commit removes that constructor. Because
migration is private to the scala package this change shouldn’t affect
the rest of the community.
Removing deprecated code.

Code which has been deprecated since 2.10.0 and which allowed
for straightforward removal.
SI-7983 Fix regression in implicit divergence checking

As seen in Slick. Regressed in 039b1cb1a5b8.

In that commit, a call to `normalize` was replaced with `dealiasWiden`
as part of a broad sweeping change. However, while the latter does
less than the former with regards to eta expansion ofhigher kinded
type refs (the motivation of that commit), it also does more when it
comes to singleton types: they are widened to the underlying type.

This was widening away `SingleType(<<package a.b>>, <<package c>>)`
before the special case assiging that type component a complexity of
zero could kick in.

In the test case, extracted from Slick, this meant that the
divergence check would consider that the second type below to
outrank the first in the complexity measure, and abort the implicit
search.

    Shape[?,                        ?  (Coffees, Coffees), ?]
    Shape[DivergenceTest.this.Flat, ?, Coffees,            ?]

After this change, the number of packages enclosing `DivergenceTest`
no longer has a bearing on the complexity score of the type.

Here's how the race was run before hand:

	complexity(<noprefix>): 0
	complexity(<root>): 1
	complexity(foo.type): 2
	complexity(foo.bar.type): 3
	complexity(foo.bar.baz.type): 4
	complexity(DivergenceTest.this.type): 5
	complexity(<noprefix>): 0
	complexity(<root>): 1
	complexity(foo.type): 2
	complexity(foo.bar.type): 3
	complexity(foo.bar.baz.type): 4
	complexity(DivergenceTest.this.type): 5
	complexity(DivergenceTest.this.Flat): 6
	complexity(<noprefix>): 0
	complexity(<root>): 1
	complexity(scala.type): 2
	complexity(Int): 3
	complexity(?): 1
	complexity(DivergenceTest.this.Shape2[DivergenceTest.this.Flat,Int,?]): 16

	complexity(<noprefix>): 0
	complexity(<root>): 1
	complexity(foo.type): 2
	complexity(foo.bar.type): 3
	complexity(foo.bar.baz.type): 4
	complexity(DivergenceTest.this.type): 5
	complexity(?): 1
	complexity(<noprefix>): 0
	complexity(<root>): 1
	complexity(scala.type): 2
	complexity(<noprefix>): 0
	complexity(Coffees): 1
	complexity(<noprefix>): 0
	complexity(<root>): 1
	complexity(scala.type): 2
	complexity(Int): 3
	complexity((Coffees, Int)): 7
	complexity(?): 1
	complexity(DivergenceTest.this.Shape2[?,(Coffees, Int),?]): 15

	dominates(DivergenceTest.this.Shape2[_ <: DivergenceTest.this.Flat, Int, U2], DivergenceTest.this.Shape2[_ <: Level, (Coffees, Int), U1]): true

And afterwards:

	complexity(DivergenceTest.this.type): 1
	complexity(DivergenceTest.this.type): 1
	complexity(DivergenceTest.this.Flat): 2
	complexity(scala.type): 1
	complexity(Int): 2
	complexity(?): 1
	complexity(DivergenceTest.this.Shape2[DivergenceTest.this.Flat,Int,?]): 7

	complexity(DivergenceTest.this.type): 1
	complexity(?): 1
	complexity(scala.type): 1
	complexity(<noprefix>): 0
	complexity(Coffees): 1
	complexity(scala.type): 1
	complexity(Int): 2
	complexity((Coffees, Int)): 5
	complexity(?): 1
	complexity(DivergenceTest.this.Shape2[?,(Coffees, Int),?]): 9

	dominates(DivergenceTest.this.Shape2[_ <: DivergenceTest.this.Flat, Int, U2], DivergenceTest.this.Shape2[_ <: Level, (Coffees, Int), U1]): false

Notice that even in the after shot, `scala.Int` has a complexity of 2.
It should be 1; this will be fixed in a separate commit.
Code reformatting in Implicits

And use List#sum, rather than a fold.

No functional change.
Account for a variation of package types in Implicit Divergence.

While debugging pos/t7983.scala, I noticed that:

    complexity(scala.type): 1
  complexity(Int): 2

The intent of the code is that top level classes should have
a complexity of one. This commit restores that for cases when
we see the prefix type as a ThisType, rather than a SingleType.

I can't construct a test case in which this small difference
is observable in the divergence checks.
SI-7985 Allow qualified type argument in patterns

We were considering the lower case `s` in `case _: Array[scala.Int]`
as a sign that we were dealing with a type variable pattern.

Now, we only do this if a lookahead confirms the absence of a the `.`
SI-7985 Allow projection of lower-cased prefix as pattern type arg

As per the last commit, tighten up the interpretation of a lower
cased identifier meaning that we're looking at a type variable.
SI-7985 Refactor parsing of pattern type args

Just parse as though it is a type, and post process to
add the Bind if it turns out to be a type variable.
No-op merge of 2.10.x into master
use more specific cake dependencies
SI-7221 rewrites pollForWork non-recursively

Fixes #1001407
SI-7280 Remove unneccesary method
deprecate Pair and Triple
Merge pull request #3167 from skyluc/issue/unneccesary-method-7280

SI-7280 Remove unneccesary method
Prepare upgrade to scalacheck 1.11.

Our scalacheck tests now compile against 1.10.1 and 1.11.0.
They pass on 1.10.1, but fail on 1.11.0.

Once (that)[https://github.com/rickynils/scalacheck/issues/79]'s fixed,
and 1.11.1 released, we should be able to upgrade to it by simply
changing scalacheck.version.number in versions.properties.

The changes are mostly removing dead code (e.g., consolereporter business).

Of interest: the type ascription for `oneOf`. I haven't quite investigated,
but something seems to have changed between 1.10.1 and 1.11.0 that caused
a different overload to be picked without the type ascription.
Probably not a scalac bug, just a scalacheck api change.