Libevent package 暫定版

Libevent の典型的関数について、パッケージ化してみました。
#まだ、ほんの一部のみです。

ひとまず、 pull request  という形で出していますが、まだまだ、マージするようなレベルではないと思っています。


いくつか説明をしておきます。
1. libevent クラス(libevent_glue.[ck]) と libevent_eventクラス(libevent_event_glue.[ck]) を定義しています。
    構造体についてはオブジェクトとして定義するものと考えてこのようにしましたが合っていますか？
    また、可能ならば、クラス毎にソースファイルを分割したほうが良いと思い分けました。これにより、konoha オブジェクト構造体を相互に参照するために、ヘッダファイルとしてまとめてあります。

2. posix の "struct timeval" が js4.date パッケージの kDate として定義されていたのですが、参照する手段がわからなかったため、 libevent_glue.h 内にて ifdef で囲って再定義しています。
    他パッケージのオブジェクト構造体定義を foo_glue.c において参照する手段はあるのでしょうか？
    posix 関連のオブジェクト構造体は、様々はパッケージで参照したいように思います。

3. libevent_glue.c において Libevent クラスを定義して、 さらに libevent_glue.k において Libevent クラスのインスタンス、メソッドを追加定義したいのですが、エラーが出ています。

----- konoha script -----
     1  import("konoha.new");
     2  import("konoha.class");
     3  import("konoha.object");
     4  import("libevent");
     5
     6  void main() {
     7  //      Libevent_k e = new Libevent_k();
     8          Libevent e = new Libevent();
     9
    10          e.event_add("listener", K_NULL);
    11
    12
    13
    14  }
    15
    16  main();
----- konoha script end -----

 - (error) (libevent_glue.k:8) Libevent has already defined
 - (error) (event-test.k:10) undefined method: Libevent.event_add
RuntimeScriptException: SoftwareFault (error) (event-test.k:10) undefined method: Libevent.event_add
StackTrace
 [8] (event-test.k:10) NameSpace.main(this=(NameSpace) main, )

原因がわかるようでしたらご教示いただけると助かります。

4. まだ悩んでいるものについては、コメントに "TODO" としてマークしてあります。

以上