Provisional implementation for exceptions.

(Work in progress)

Every `try/catch` adds an `exception_frame` to the list of exception
frames of the CompiledFunction. Each frame has information of ranges of
instructions protected, offset of catch block, and exception type
associated -- as an oop to String instance.

On linking time, the exception type oop should be substituted by the
actual Class instantiated during module load so the runtime machinery
can match exception types. This implementation is provisional because:

1) Above all else, obviously a CompiledFunction should not have entries
pointing to objects of a module instance. So this is a hack.

2) Exception types in `catch( ...)` should be references to top level
names only (classes and module parameters); they should not be
references to parameters or local variables.

Point (1) is a major urge for redesigning this scheme. Point (2) is not
so critical (allowing these things is possible, but it will bloat the
exception_frame with locality information).

But in any case, this impl. satisfies the current semantics needed for
moving on with other things.