Bump version for 2.12.x

For this step, we still depend on _2.11 libraries (partest, xml,
parser-combinators).

After we release the first milestone of 2.12, we will update
versions.property to bootstrap to 2.12 dependencies.
Disable MiMa on the 2.12.x branch
Merge pull request #3715 from retronym/topic/bump

Bump version for 2.12.x
Merge remote-tracking branch 'origin/2.11.x' into merge/2.11.x-to-2.12.x
TypeTree printing modified (SI-8447)
@inline Predef.identity[A].

Since identity[A] is often used as a function directly supplied to
methods requiring (A)=>A, there's no need to have the generated
Function1 object contain an explicit call to identity[A]().

This implementation isn't going to change, so let the synthetic
Function1 elide the extra call, generating just "aload_1; areturn".
Make PartialFunction.OrElse extend AbstractPartialFunction.

This shaves a few kB off of the generated class file.
Merge remote-tracking branch 'origin/2.11.x' into merge/2.11.x-to-2.12.x
Merge pull request #3731 from retronym/merge/2.11.x-to-2.12.x

Merge 2.11.x to 2.12.x
Merge pull request #3740 from tvierling/trait-instantiation

Make PartialFunction.OrElse extend AbstractPartialFunction.
Deprecation of @BeanInfo
SI-8185 Correct grammar for single-warning compilation run
Merge pull request #3737 from tvierling/identity-inline

@inline Predef.identity[A].
Merge pull request #3746 from lrytz/beanInfoDep

Deprecation of @BeanInfo
SI-8609 Fix flattening of definitions and imports in quasiquotes

Quasiquotes allow to unquote trees with ..$ with block flattening
semantics to simplify composition:

  val onetwo = q"1; 2"
  val onetwothree = q"..$onetwo; 3" // same as q"1; 2; 3"

If there is no block it will be equivalent to $ unquoting:

  val one = q"1"
  val onetwo = q"..$one; 2" // same as q"1; 2"

But the inconsistency here is that currently only terms support
this single-element semantics. This commit extends this functionality
to also support definitions and imports. So that following code works:

  val q1 = q"val x = 1"
  val q2 = q"..$q1; val y = 2" // same as q"val x = 1; val y = 2"
Merge branch '2.11.x' into 2.12.x
adds MacroPlugin.pluginsIsBlackbox

This is an important omission in the current macro plugin API, which was
designed before the blackbox vs whitebox separation was implemented.

Even if one overrides pluginsTypedMacroBody and pluginsMacroExpand,
that would still be not enough to write a custom macro expander, because
typedImplicit1 uses isBlackbox, which is tightly coupled with the standard
way of reading/writing macro signatures.
macro args now correctly preserve range positions

Somewhen in the 2.11.0 development cycle we started duplicating macro arguments
for increased robustness. What wasn't taken into account though is that
Tree.duplicate destroys range positions. This commit fixes the problem.

2.10.x is unaffected by this bug, because it doesn't duplicate the args yet.
Merge pull request #3773 from lrytz/merge-2.12

Merge 2.11.x into 2.12.x
SI-8494 Restore filtering javap output

Regressed in support for new delayedEndPoint, where it must
pick what to filter for.

`s/claas/klass/` and similar.