Cache bytecode in interpreter object instead of storing it in the frame after each bytecode

Only store it in the frame when the frame might be changed or is visible by primitives.

Signed-off-by: Stefan Marr <git@stefan-marr.de>
In Frame: previous_frame, context, and method are now proper fields and not instance fields anymore

Decouples language from implementation, and gives JITs etc more grip on the implementation.

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