SI-8411 match desugared partial functions
SI-8200 provide an identity liftable for trees

This liftable hasn't been originally included in the set of standard
liftables due to following contradiction:

1. On one hand we can have identity lifting that seems to be quite
   consistent with regular unquoting:

    q"..${List(1,2)}"        <==> q"1; 2"
    q"${List(1,2)}"          <==> q"s.c.i.List(1, 2)"
    q"..${List(q"a", q"b")}” <==> q"a; b"
    q"${List(q"a", q"b")}"   <==> q"s.c.i.List(a, b)"

   This is also consistent with how lisp unquoting works although they
   get lifting for free thanks to homoiconicity:

    // scala
    scala> val x = List(q"a", q"b); q"f($x)"
    q"f(s.c.i.List(a, b))"

    // scheme
    > (let [(x (list a b))] `(f ,x))
    '(f (list a b))

2. On the other hand lifting is an operation that converts a value into
   a code that when evaluated turns into the same value. In this sense
   Liftable[Tree] means reification of a tree into a tree that
   represents it, i.e.:

    q"${List(q"a", q"b")}"
    <==>
    q"""s.c.i.List(Ident(TermName("a")), Ident(TermName("b")))"""

   But I belive that such lifting will be very confusing for everyone
   other than a few very advanced users.

This commit introduces the first option as a default Liftable for trees.
Merge pull request #3653 from densh/si/8200

SI-8200 provide an identity liftable for trees
SI-8437 macro runtime now also picks inherited macro implementations

Previously it didn't matter much that we used Class.getDeclaredMethods
instead of just getMethods, but with the introduction of macro bundles
it can make a difference which is fixed in this commit.

I'd also like to note that the fact that getMethods only returns public
methods and getDeclaredMethods also sees private methods, doesn't make
a difference, because macro implementations must be public.
SI-8350 treat single parens equivalently to no-parens in new

q"new C" and q"new C()" have identical trees after parsing. This
commit adds knowledge of this invariant to SyntacticNew.
SI-8387 don't match new as a function application
introduces Mirror.typeOf

I just realized that our tag-based shortcuts were incomplete, because
they only work with root mirrors (doing just u.typeTag[T].tpe means that
the type is going to be resolved in u.rootMirror because that's the default).

This commit fixes this oversight. I'm hoping for 2.11.0-RC3, but also feel
free to reschedule to 2.12.0-M1 if it becomes clear that RC3 isn't happening.
Merge pull request #3636 from xeno-by/topic/mirror-typeof

introduces Mirror.typeOf
Merge pull request #3647 from densh/si/8411

SI-8411 match desugared partial functions
SI-8388 consistently match type trees by originals

Due to the fact that all TypTrees are transformed into TypeTrees
during typechecking one couldn't treat typed type trees in the same
way as they treat untyped type trees.

This change implements support for pattern matching of TypeTrees as their
corresponding TypTree equivalent using tree preserved in the original.

The implementation itself is a trivial wrapping of regular TypTree
extractors into MaybeTypeTreeOriginal.
Merge pull request #3651 from xeno-by/ticket/8437

SI-8437 macro runtime now also picks inherited macro implementations
SI-8451 quasiquotes now handle quirks of secondary constructors

Apparently even though the rhs of a secondary constructor looks like an expr,
it always gets wrapped in a block by the parser. This works just fine with
the typer, but crashes in uncurry. This commit brings quasiquotes in line with the parser.
Merge pull request #3659 from xeno-by/topic/uncurry-ctors

SI-8451 makes uncurry more forgiving
Merge pull request #3656 from densh/si/8387-8350

SI-8350 SI-8387 tweak handling of new trees
Merge pull request #3657 from xeno-by/ticket/8388

SI-8388 consistently match type trees by originals
WIP: trying to apply the Literal-based singleton types commit by @paulp to the master.
Fix non-working things.
Update check file.
Problems with null.
Update the check file.