unit test runner の標準出力のバッファーを unbeffered に変更

runner の出力を随時表示させて進行度合いを確認しやすくするため。
src/test 配下の一部テストケースを test/ut 配下へ移動し、残りを全て削除

--HG--
rename : test/ut/test_bignum.c => test/ut/test_api_bignum.c
rename : test/ut/test_booleans.c => test/ut/test_api_booleans.c
rename : test/ut/test_characters.c => test/ut/test_api_characters.c
rename : test/ut/test_equivalence.c => test/ut/test_api_equivalence.c
rename : test/ut/test_exceptions.c => test/ut/test_api_exceptions.c
rename : test/ut/test_fixnum.c => test/ut/test_api_fixnum.c
rename : test/ut/test_format.c => test/ut/test_api_format.c
rename : test/ut/test_module.c => test/ut/test_api_module.c
rename : test/ut/test_pair_and_lists.c => test/ut/test_api_pair_and_lists.c
rename : test/ut/test_strings.c => test/ut/test_api_strings.c
rename : test/ut/test_symbols.c => test/ut/test_api_symbols.c
rename : test/ut/test_vectors.c => test/ut/test_api_vectors.c
SCM_UNIT_TEST、scm_local_func、scm_local_inline マクロを廃止
不要なソースファイル (charconv.c) を削除
src/string.c 内の不要なコードを削除
ut/test.h に定義していた関数を ut/test.c に移動

関数未使用の警告がジャマだったので関数定義場所を移動
SCM_OBJ_NULL の ScmTypeInfo、SCM_OBJ_NULL_TYPE_INFO を定義
scm_api_list_to_vector に improper list を渡した際の動きを変更

下記のように scm_api_list_to_string と同じになるよう変更。

  (list->string '(#\a #\b . #\c)) ;=> "ab"
  (list->vector '(a b . c))       ;=> #(a b)
scm_api_list_copy のバグを修正
命令ディスパッチループを無限ループ形式の書き方に変更
VMスタックと例外処理に関するバグの修正

Changeset ID: 8b179129f5efa69dafb2ac06c751e02e42da0a5a のバグ修正が不十分で
あったため追加修正。

[バグの内容・原因]

  (write (length a))
  ;; 未束縛変数 a の参照でエラーが発生し、例外処理が発生

上記のケースでは継続フレームの上に不完全な環境フレームが積まれている状態で例
外処理が発生する。このとき例外処理プロシージャ (exception handler caller) は
トランポリンコードを用いて tail call で呼び出される。tail call により、例外
処理プロシージャ用の環境フレームのシフトが行なわれ、継続フレームの上にある不
完全な環境フレームは破壊される。この状態で GC が発生すると、pefp レジスタが
参照している不完全環境フレームが破壊されているため、不完全環境フレームのチェー
ンを辿ろうとして、不正なメモリアクセスを行ってしまい、セグメンテーションフォ
ルトが生する。

[対処]
Changeset ID: 8b179129f5efa69dafb2ac06c751e02e42da0a5a の修正で、継続フレー
ムに pefp レジスタ値を保存するようにしたので、継続フレーム作成時に pefp レジ
スタを NULL に設定するよう変更する。これにより、最上位継続フレームのより上位
に不完全環境フレームがある場合にのみ pefp レジスタは非 NULL 値を持ち、下位に
のみ存在する場合は NULL 値を持つようになる。この修正に合せる形で tail call
時に pefp レジスタを NULL に設定するよう変更する。tail call 時、最上位継続フ
レームの直上に環境フレームが 1 つ存在するかあるいは何も無いかのどちらかなの
で、pefp レジスタを NULL に設定するのは整合が取れており、pefp レジスタが何も
指していないので、不完全環境フレームの破壊による不正なメモリアクセスも発生し
なくなる。

[補足: 別案]
Changeset ID: 0c216628d3e97c4bdfa63b8b4c618d4001acf419 のバグ修正により、例
外処理プロシージャが return しなくなったので、継続フレームに pefp レジスタ値
を保存するようにした Changeset ID: 8b179129f5efa69dafb2ac06c751e02e42da0a5a
の修正は意味がなくなっているはずである。そこで、継続フレームに pefp レジスタ
を保存するのをやめ、call 処理時に pefp レジスタから不完全環境フレームのチェー
ンを辿り、pefp レジスタが継続フレームより下位の不完全環境フレームを指すよう
にレジスタ値を変更することでもバグを修正できるはずである。この方法では環境フ
レームを小さくすことができるが、実装の容易性から上記 [対処] の修正を行ってい
る。
scm_vm_run_cloned のバグを修正
scm_syntax_new のバグを修正
GC を実行するかの判断ロジックを変更

ヒープ領域が不足していると無条件に GC を実行していたが、前回 GC を実行した後
にアローケートした領域のトータルサイズがヒープ全体の半分以上であれば、GC を
実行するようにし、そうでなければ、ヒープ領域を拡張するよう変更。

GC 後にヒープに空領域があまり無い場合はヒープを拡張していた処理を削除。この
処理があったため、上記の変更を行っても GC の発生頻度については得に変化がない。
VM 命令の RAISE を、未使用のため削除
scm_capi_exec_file/scm_capi_exec_cstr のバグを修正