Save/restore function's globals in exception-safe manner.

This is proposed fix for #290.

Comments:

As usual, if there're concerns what's passed in regs on ARM, globals arg can be added last instead of first to bytecode exec functions.

Otherwise, it looks kinda like breaking layer separation, for example vm suddenly knows about maps. But code execution always happens within context of some environment, and managing environments apparently a task for VM (especially if we model target exception with exceptions on meta level). But rt_globals_get/set() are there exactly to abstract it away, so they can be made accept void*,and then we don't have env implementation details leak into VM.