Interpreter: fixed handling of SAVE_LOCALS bitmask
Since the introduction of save_locals_bitmask, expendible_offset was
never set. Also since the handling of expendible_offset and
save_locals_bitmask were handled by the same case, the code was broken.
During pop entries handling of the save_locals bitmask could lead
to situations where locals above expendible_offset were 'copied' into
the trampoline frame. Those locals could have already been popped from
the stack by the RETURN_LOCAL opcode.
Also slightly refactored the code to not allocate more space for locals
than needed and removed some unnecessary casts.
This became visible and could lead to crashes when building for 32bit
on 64bit x86 machines.