Scaladoc jars should go to /api.
Remove cruft from pom.

My understanding is distributionManagement is only needed to configure
maven locally for publishing. Since we do that it ant, getting rid of it.
SI-8170 Fix regression in TypeRef#transform w. PolyTypes

Regressed in SI-8046 / edc9edb7, by my hand.

At the time, I noticed the problem: transform wasn't accounting
for the potential Poly-Type-ness of its argument, and this would
lead to under-substituted types. The commit comment of edc9edb7
shows an example.

But the remedy wasn't the right one. The root problem is
that a TypeMap over a PolyType can return one with cloned
type parameter symbols, which means we've lose the ability
to substitute the type arguments into the result.

This commit detects up front whether the type-under-transform
is a PolyType with the current TypeRef's type parameters, and
just runs the `asSeenFrom` over its result type.
update mailmap
SI-7322 Interpolator idents must be encoded

Otherwise, they are not found.

This matters for term names with a differential encoding.

Footnote, normally ident() encodes, but INTERPOLATIONID
is !isIdent, so that is not used here.  Maybe that would
be the better improvement.
Improve ExecutionContext implicitNotFound and docs

It is not good practice to import a specific ExecutionContext
all over the place; we shouldn't recommend that. People should
allow callers to specify the context in most cases and only
import the context in some central location in their code.

While we are at it, add some more comprehensive docs to
ExecutionContext which will hopefully give people enough understanding
to make decisions about it.
Avoid generic collections operations hot paths

 - Use a specialized version of List#{map, collectFirst}
   These special case mapping over an empty list and avoid
   allocating.
 - Avoid nonEmpty in favor of `ne Nil`

I see in the order of 2% speedup.

Perhaps more useful is that
these methods no longer dominate the YourKit profiles, even though
profiler bias due to safepoints at allocation of the ListBuffer
might have been overstating their significance.
Optimize isSelfSuperCall

Avoid the Applied extractor altogether, as that eagerly
creates `argss` which we don't need and which is quite
expensive.
Optimize TreeInfo#isMacroApplication.

It's called rather frequently. Tree#symbol is a megamorphic call,
which featured in profiles.
Typers#stabilize is a noop in erasure's typer.

Anything we can do to make erasure faster.
Optimize typedDefDef: disable some checks post typer

isPossibleRefinement reported as 1% of my profile, about half of that
was reported from the `EraserTyper`.

This commit restricts `checkMethodStructuralCompatible` to
the typer phase, and also moves in the feature warning for
implicits which was nearby.

I've also made a minor optimization to `overriddenSymbol` by
avoiding computing the method schema repeatedly.
Optimize the pickler phase

 - move "erroneous type" diagnostic into a crash recovery handler,
    rather than running it proactively
 - move the "unexpanded macros" check into refchecks.

 Cuts this phase in half, from about 1% of compile time to 0.5%.
Don't try to eliminate tail calls in constructors.
Optimize tailcall elimination

From the "if a tree falls" department: don't bother create a finely
distinguished error messages about why the transform is inapplicable
if the current context doesn't demand it.
Optimization in TailCalls

Only store the position and reason for a failure to tailcall
transform a method if we ever need to report it, ie, if the
method was annotated with @tailrec.

Saves object hashing and map updates, profiling suggests
that this reduces the tailcalls phase from about 2% of compilation
time to about 1%.

Also, clear the maps eagerly after each compilation unit,
rather than letting them accumulate entries for the entire
run. Working with smaller maps can't hurt.
Optimize generic signatures utility method `dotCleanup`
Avoid needless Name creation

 - Don't create names just to perform prefix/suffix checks
 - Don't create names, decode, *and* intern strings in ICode
Optimization in Uncurry

Only perform HashMap lookup of a tree until after checking more
cheaply if it refers to a symbol with by-name parameter type.
Avoid work in GenICode#run when inactive.

scalaPrimitives.init() represented 1% of a small (1s)
compilation run.
SI-7124 make macro definitions prettier in scaladoc

Macros are now prettier in scaladoc, by
 - hiding the `macroImpl` annotation
 - showing the `macro` modifier in front