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.
another macro engine refactoring
better error messages for argc <-> paramc mismatches
refactors macro tests:
* 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.
refactors signature handling in macro engine

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

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