support for conversions between values and trees

This is very handy when interpretation of high-level trees calls into
interpretation of corresponding low-level trees with some of the trees
already evaluated during one of the previous steps.
adds Definitions.scala that contains references to useful symbols
instantiate now takes a Type, not a ClassSymbol

Java does have reified generics in the form of arrays, so just knowing
a symbol of something we're going to instantiate isn't going to cut it.

(It's enough to have a symbol when we want to express just List, but
we need a type to express something parameterized with other types).
interprets type tests and type casts

Another thing I missed when sketching the prototype. Type arguments of
applications can't be discarded in general case, because they do matter
in case of isInstanceOf and asInstanceOf intrinsics
interprets matches
aliases Result and Results to Tuple2
eliminates unchecked warnings
Merge branch 'master' of github.com:xeno-by/interpreter into topic/progress

Conflicts:
	interpreter/src/main/scala/scala/reflect/interpreter/internal/Engine.scala
creates an aggregating project
makes Value.reify return JvmResult, not Option[Any]
fixes defaultValue
some debugging tools
moves magic method definitions to Definitions.scala
Merge pull request #1 from xeno-by/topic/progress

merges master into dedoz/master