Remove bytecode index from frame, handled now by interpreter only [WIP]

Signed-off-by: Stefan Marr <git@stefan-marr.de>
Calling conventions are now completely encoded in the frame

Signed-off-by: Stefan Marr <git@stefan-marr.de>
Added control flow exceptions to manage non-local returns and block restarts in this recursively written interpreter

Signed-off-by: Stefan Marr <git@stefan-marr.de>
Interpreter now written completely recursively [WIP]

- remove all unnecessary fields
- pass frame along explicitly
- remove unnecessary parameters from functions
- local returns use simple return statements, while non-local returns rely on exceptions to unwind the stack
- removed unnecessary frame related operations from interpreter (manipulating the stack of frames)
- added comments about the bytecode number associated with each bytecode to ease debugging

Signed-off-by: Stefan Marr <git@stefan-marr.de>
Block>>#restart primitive now uses control flow exception

Signed-off-by: Stefan Marr <git@stefan-marr.de>
Need to pass on frame explicitly in send operations

Signed-off-by: Stefan Marr <git@stefan-marr.de>
Fix shell

Signed-off-by: Stefan Marr <git@stefan-marr.de>
Adapt universe to recursive style of interpreter

Signed-off-by: Stefan Marr <git@stefan-marr.de>
Block _invoke doesn't handle control flow exceptions

- it relies on interpreter returning result values and puts it on the stack
- non-local returns are handled by method call of the context

Signed-off-by: Stefan Marr <git@stefan-marr.de>
Only method needs to handled control flow exceptions [WIP-completed]

Method invocation takes care of restarts and non-local returns, very similar to the Truffle version.

Signed-off-by: Stefan Marr <git@stefan-marr.de>