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
type macros beta 3

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.
untyped macros beta 2

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.
unhardcoding macro compilation, step I: introduces MacroCompiler
unhardcoding macro compilation, step II: new starr
unhardcoding macro compilation, steps III and IV: engine and bundles
JIT: refactors importers
JIT: factors out macro runtimes
JIT macro compiler

Allows using macro implementations in the same compilation unit that
defines them if you enable -Xmacro-jit. Very-very experimental.
macro annotations, pre-alpha v2

unfortunately the original idea of hijacking enterSym didn't work
(see the comments in Namers.enterSym for more information), so I had
to resort to a very ugly hack, since I do need macro annots right away
SI-7470 implements fundep materialization

This fix provides implicit macros with an ability to affect type inference
in a more or less sane manner. That's crucial for materialization of
multi-parametric type class instances (e.g. Iso's from shapeless).

Details of the technique can be found in comments. Also see the discussion
at https://github.com/scala/scala/pull/2499.
quasiquotes beta 1

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.