Use more precise return types for objects

This ensures that q"object O" is of type ModuleDef rather than
Tree and similarly q"package object O" is of type PackageDef.
SI-8171 make tq"" an alias for empty type tree
SI-7919 Newline after empty string interp

Consume the newline non-raw for safe handling after
single-line interpolation.
SI-2066 -Xsource:2.10: lenient treatment of variance in <:<, =:=

The soundness hole was exploited in Scalaz. They have fixed their
codebase correctly for Scalac 7.1.x, but have less freedom to
break source compatiblity in 7.0.x.

After this commit, they could choose to compile that branch with
-Xsource:2.10
Merge pull request #3410 from densh/si/8171

SI-8171 make tq"" an alias for empty type tree
Merge pull request #3412 from retronym/ticket/2066-2.10-compat

 -Xsource:2.10: lenient treatment of variance in <:<, =:=
Merge pull request #3411 from som-snytt/issue/7919-si-nl

 Newline after empty string interp
Fix misuse of underscores.

It's a language bug, but M[_] <: Foo[_] does not mean what
anyone who writes it believes that it means. You have to give
the type parameter a name, like M[X] <: Foo[X].
corrects an error in reify’s documentation
Merge pull request #3414 from xeno-by/topic/reify

corrects an error in reify’s documentation
Merge pull request #3413 from paulp/pr/future

Fix misuse of underscores.