implements Tree.parent and Tree.scratchpad, also renames SourceContext to Origin
kills Tree.empty => this notion is incompatible with Tree.parent
pullrequest feedback
updates packages a bit

* Package.Named => Package.Template, because Package.Header is also named
* root is no longer a special snowflake. It's just a package called _root_.
Merge branch 'master' of github.com:scalareflect/core

Conflicts:
	docs/ugliness.md
	reflection/core/Trees.scala
	reflection/syntactic/Parsers.scala
org.scalareflect.unreachable
semantic.root is really unnecessary

Our new API doesn't really need a dedicated entry-point, because:
1) It's cakeless
2) staticClass/staticModule/staticPackage are rendered obsolete by
hygienic quasiquotes
unreachable is now an Error
changes id = "core" to id = "reflection" without changing artifact name
fixup: fixes root
removes default arguments from trees
fixes isPartialFunction
some todos
removes the isThreadsafe API
moves mods to the beginning of the parameter list
@leaf and @ast now support multiple parameter lists
internalQual => _qual
Pkg.Named + Pkg.Template => Pkg
removes ast.md

to be reinstated soon
Name.isBackquoted is now in the second parameter list