moves crucial part of introduceTopLevel to Run

This is done to make it easy for other parts of the compiler to use
the (quite involved) logic of introduceTopLevel.
macro engine refactoring

Macro impl bindings now store more information in signatures.
Previously it was a flattened List[Int] corresponding to flattened paramss,
now it's List[List[Int]] to preserve the lengths of parameter lists.
Also now we distinguish between c.Expr parameters and others.

Previously actual and reference macro signatures were represented as
tuples of vparamss, rets, and sometimes tparams. Now they are all
abstracted behind MacroImplSig.

Finally this patch provides better error messages in cases of
argsc <-> paramsc and argc <-> paramc mismatches.
refactors macro tests

putting in a nutshell, this patch:
  * condenses some macro-XXX-a/b/c/... bundles
  * renames some tests to prepare for type macros
  * introduces some additional tests
org.scala-lang.macro-paradise
type macros beta 2

No spec yet, just docs at http://docs.scala-lang.org/overviews/macros/typemacros.html.
List of known issues: https://issues.scala-lang.org/secure/IssueNavigator.jspa?mode=hide&requestId=11912.
SI-6859 type macros no longer crash sbt

By mimicking alias types, macro types no longer trip a sanity check
in sbt 0.12 and 0.13: https://github.com/harrah/xsbt/blob/ef39aeb9c1ea443c17356695758a31152910c4a7/compile/interface/src/main/scala/xsbt/API.scala#L221.

This workaround makes me sad but it's the only option to make type macros
immediately useful. Principled fix pending.
quasiquotes milestone 2

No spec yet, just docs at http://docs.scala-lang.org/overviews/macros/quasiquotes.html.
List of known issues: https://issues.scala-lang.org/secure/IssueNavigator.jspa?mode=hide&requestId=11912.
untyped macros beta 1

No spec yet, just docs at http://docs.scala-lang.org/overviews/macros/untypedmacros.html.
List of known issues: https://issues.scala-lang.org/secure/IssueNavigator.jspa?mode=hide&requestId=11912.
disabled a weirdly failing test
new starr: QuasiQuote => Quasiquote
submits the starr prepared in the parent commit
unhardcoding macro compilation, step I: starr
submits the starr prepared in the parent commit
unhardcoding macro compilation, steps II and III: engine and bundles
temporarily switching out of Scala reflection
inference-aware macros

The quality of this commit is very low, even by the standards of the
experimental branch. Expect the API and the implementations to be
reviewed in the upcoming days.
support for inferMethodInstance

Experimental and dirty, very akin to the parent commit.
fixup the analyzerPlugins test
SI-7135 parent type role and traits

Traits don't have constructors, therefore typedPrimaryConstrBody will do
nothing, i.e. return an EmptyTree, which will crash the expander with a
null pointer exception. Just using typer.typed instead.
SI-7157 fixes the arg <-> params conformance check in macros

@paulp was right. We should abstract this away, otherwise it's too easy
to make a mistake.