関数呼び出し時のスタックフレームとして2ヶ所を積むように変更

従来は、関数呼び出し直後に、
引数をスタックに積む前の状態の stack_head をスタックフレームにプッシュしていた。
今回のコミットで、それに加えてさらに、
引数をスタックに積み終わった時点でも再び stack_head をスタックフレームにプッシュするようにした。
すなわち、関数コール毎にスタックフレームとして2箇所プッシュすることになる。

これは、
関数引数のスタックへの積みを、処理前と、処理後の、2箇所の stack_head を保存する意味となる。
処理前のスタックフレームは、関数終了後に以前の状態の stack_head 位置を復帰するために使う。
処理後のスタックフレームは、ローカル変数のオフセット位置を計算するために使う。

関数毎に push_stackframe() を2回行うように変更したのに伴い、
__define_user_function_return() もそれに合わせて修正。