if文サポート

http://github.com/mzp/scheme-abc/commit/e54efa5c0092f49ae892cb15a14fa67816d89099
if文が使えるようになった。正確にはif式だけれども。

$ cat example/bool.scm
(if (< 1 42)
    (print "big")
    (print "small"))

$ ocamlbuild main.byte -- example/bool.scm
$ avmplus a.abc
big

これを実現するために、バックパッチングをするようにしたんだけど、これでいいのか自信がない。破壊的な操作をしたくないから、ラベルを集めるためと、ラベルを数字に置き換えるための2回リストを舐めている。これが非常に効率が悪い気がする。
遅く感じるまで、放置でいいのかな。