add better return code handling

when there is a signal in untrusted code, the return code from the session is invalid
in that case we need to somehow pass zerovm return code outside
the common way of passing several return codes in one byte is by doing bitwise `or` into actual byte
this is what was implemented as a default behaviour