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.
Use an intrinsic for the next power of two calculation and also return the input as is if it is already a power of two
blackbox and whitebox macros

This is the first commit in the series. This commit only:
1) Splits Context into BlackboxContext and WhiteboxContext
2) Splits Macro into BlackboxMacro and WhiteboxMacro
3) Introduces the isBundle property in the macro impl binding

Here we just teach the compiler that macros can now be blackbox and whitebox,
without actually imposing any restrictions on blackbox macros. These
restrictions will come in subsequent commits.

For description and documentation of the blackbox/whitebox separation
see the official macro guide at the scaladoc website:
http://docs.scala-lang.org/overviews/macros/blackbox-whitebox.html

Some infrastructure work to make evolving macros easier:
compile partest-extras with quick so they can use latest library/reflect/...
blackbox restriction #1: can't refine the official return type

When an application of a blackbox macro expands into a tree `x`,
the expansion is wrapped into a type ascription `(x: T)`, where `T` is
the declared return type of the blackbox macro with type arguments and
path dependencies applied in consistency with the particular macro
application being expanded.

This invalidates blackbox macros as an implementation vehicle
of type providers.
blackbox restriction #2: can't guide type inference

When an application of a blackbox macro still has undetermined type
parameters after Scala’s type inference algorithm has finished working,
these type parameters are inferred forcedly, in exactly the same manner
as type inference happens for normal methods.

This makes it impossible for blackbox macros to influence type inference,
prohibiting fundep materialization.
blackbox restriction #3: can't affect implicit search

When an application of a blackbox macro is used as an implicit candidate,
no expansion is performed until the macro is selected as the result of
the implicit search.

This makes it impossible to dynamically calculate availability of
implicit macros.
blackbox restriction #4: can't customize pattern matching

When an application of a blackbox macro is used as an extractor in a
pattern match, it triggers an unconditional compiler error,
preventing customizations of pattern matching implemented with macros.
Merge commit 'e350bd2cbc'; commit '2bfe0e797c2b9c57277475c9296e36cbf868b7db' into merge-2.10
Merge commit '25bcba59ce' into merge-2.10
Merge commit '50c8b39ec4' into merge-2.10
Merge commit '075f6f260c'; commit 'e09a8a2b7f' into merge-2.10
Merge commit '6045a05b83' into merge-2.10

Conflicts:
	src/interactive/scala/tools/nsc/interactive/Global.scala
Merge branch '2.10.x' into merge-2.10

Intermediate steps:

```
g merge -s ours e350bd2cbc 2bfe0e797c2b9c57277475c9296e36cbf868b7db
g merge 25bcba59ce
g merge -s ours 50c8b39ec4
g merge 075f6f260c e09a8a2b7f
g merge 6045a05b83 # update check file for presentation/completion-implicit-chained
g merge -s ours 2.10.x
```
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.
Merge pull request #3129 from adriaanm/pr-rebase-3001

[rebase] blackbox and whitebox macros
Merge pull request #3127 from RajivKurian/OpenHashMap-nextPowerOfTwo-implementation

 Use an intrinsic for the next power of two calculation.
Revived tests that once depended on xml

I was a bit overzealous in moving stuff over to scala-xml in 9c50dd5274
These were all compiler tests that accidentally touched on xml.
I've tried to delicately decouple them so they can roam the
scalac pastures as intended.
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.
Updated Eclipse .classpath for partest and scaladoc projects
SI-7961 Fix false positive procedure warnings

Two issues are fixed in this commit:
 - `def foo: Unit` was detected as missing a return type
 - The warning was emitted for constructors, but
   `def this(...): Unit = ...` is not valid Scala syntax