Add -Ycheck capability

Right now uses a super-rudementary tree checker: we only check that every tree
has a type.
More fixes and tests for easure.

1. Object_isInstanceOf/asInstanceOf are no longer parameterized methods (seems there's
no point in writing x.$asInstanceOf[T]() instead of the shorter x.$asInstanceOf[T]).

2. Array constructor's type is unchanged (the previous rules erased it to

    def <init>(len: Int)Object

which is clearly wrong).

3. indexing needs to be disabled.

4. typedTypeApply needs to keep type applications that apply to type tests and type casts as well as
array ops.

5. References to self-ids are typed ThisType(cls) before erasure; are replaced by This(cls) references
during erasure.
Maintaining owners during transformations

The transformation framework needed to be changed so that contexts passed to
transformations have correct owner chains. These owner chins are demanded by
the Splitter phase.

Note: I eliminated the contexts array in TransformInfo because it interfered
with the owner computations. Generally, caching contexts with some phase is best
done in Contexts, because withPhase is also used heavily in othre code, not just in
Transformers.

New phase: Splitter

When it is complete, it will make sure that every term Ident and Select node
carries a symbol. Right now, all it does is coverting self reference idents to
"this"-nodes.
Added implementation of TypeTestsCasts#box
Renaming clear->setNew

clear is wrong. E.g. clearTyperState does not clear the typerstate at all. It installs a
fresh (i.e. cloned) copy of the previous one. clearScope is also wrong; it installs a new
scope, does not clear the current one.