SI-5923 instantiates targs in deferred macro applications

In January I submitted a pull request, which, as I thought back then,
fixes SI-5923: https://github.com/scala/scala/commit/fe60284769.
The pull request was merged, and everyone was happy that the bug got fixed.

Unfortunately, the fix was: a) incomplete, b) broke something else,
as noticed by Miles in https://groups.google.com/d/topic/scala-internals/7pA9CiiD3u8/discussion.

Now we got a real fix in 2.10.x (https://github.com/scala/scala/commit/90ac5c4e13),
and it's my pleasure to port it to master.
macroExpandAll is now triggered in all invocations of typed

This is a port of https://github.com/scala/scala/commit/bb73b9669a from 2.10.x.
SI-7167 implicit macros decide what is divergence

This is a port of https://github.com/scala/scala/commit/8168f118c9 from 2.10.x,
with an additional change to the `enclosingImplicits` and `openImplicits` APIs,
which encapsulates tuples of `pt` and `tree` into `ImplicitCandidate`.
SI-7047 fixes silent for c.inferImplicitXXX

This is a port of https://github.com/scala/scala/commit/b4da864247 from 2.10.x.
removes duplication in inferImplicitValue

This is a port of https://github.com/scala/scala/commit/4e64a2731d from 2.10.x.