Drop task of simplifying hk types.

See examplation in 2nd commit of branch aborted/simplify-hk.
More precise untyped tree handling

1) Untyped trees now have precise isType/isTerm methods.
2) The New(tree, args) method can now also handle TypedSplices.
Reorganization of template parents.

Template parents always were constructor calls before. This is not correct because in a situation like the one
elaborated in templateParents, the trait D has the class C as supertype, but it does not call its constructor (in fact, if we added a () parameter list to make it into a constructor this would be wrong because C takes parameters.

Now parents can be either types or constructor calls.

The logic in Namer and Typer that deals with parents is cleaned up. In particular, we now construct any synthetic class parent as a full type, before calling normalizeToClassRefs. This obviates the forwardRefs logic that needed to be done in a cleanup of Namers.

Also added two more checks: (1) All parents except the first one must point to traits. (2) A trait may not call a parent class constructor.
Infrastructure for per-phase tests, with inline source as a string.
Fixing glb/lub of TypeBounds

Need to take variances into account when forming & or | of bounds. Achieved by moving code from distributeAnd/Or to TypeBounds &/|.
Check that inferred parent classes are feasible.
Fix problem when handling structural types without a nominal parent type.

We need to use Object as parent then, but this was forgotten.
Rename baseType -> baseTypeRef

What was `baseType` and is now `baseTypeRef` only computes the prefix of of basetype, not the type arguments.
If type arguments need to be included there is `baseTypeWithArgs`. The reason is that type arguments are usually already encoded as member types. But this was a source of errors because in Scala 2, baseType includes the type arguements.

(also added test file structural.scala forgotten from last commit)
Merge pull request #31 from DarkDimius/tests

Infrastructure for per-phase tests, with inline source as a string.
 Enable verbose printing of exceptions thrown in junit tests
Merge pull request #32 from DarkDimius/verbose_ex

 Enable verbose printing of exceptions thrown in junit tests
For some tests context is required, it should be passed to checker phase.
More informative asserts.
Typos corrected.
More verbose assertions.
Unnecessary semicolons removed.
Add test case for #34

Right now this one fails.
Fix of #34

The root cause of #34 was that we took a type argument which was an existential type. These are returned as type bounds, which make no sense in the calling context. To avoid that problem in the future, `typeArgs`
got renamed to `argInfos`, so it is clear we get an info, not necessarily a value type. There are
also added method `argTypes`, `argTypesLo`, `argTypesHi`, which return a type, but either throw an exception or return a lower/upper approximation of the argument is an existential type.

There's another issue that the existential type only arose when compiling the same couple fo files the seciond time. We need to chase that one down separately.
Merge pull request #38 from odersky/fix/#34-pathresolvers

Fix/#34 pathresolvers
Merge pull request #35 from DarkDimius/tests-2

For some tests context is required, it should be passed to checker phase.
Merge pull request #37 from DarkDimius/assertions

Typos, better assertions, dead code
Use virtual file instead of temporary file for tests