Fix object garbage collection processing

Now, GC processing is done in free.  That is not appropriate, because

a) Some input argument need to be freed, but not GC-ed
b) GC need to access values instead of memory location

So added individual GC function in converter/translator/arg-processor
and call them after function call.

For object GC processing, when caller get an object from return value
or out argument of a function, if the object ownership is transferred,
the reference count should have been increased for caller already.  So
to setup GC for an object, it should be enough only to call
g-object-ref-sink if it is floating to get the ownership.
Merge pull request #35 from hying-caritas/fix-gc

Fix object garbage collection processing
Convert namespace into struct and add namespace cache

Because we will search namespace more often to avoid build
same object/struct again and again.
Add interface cache into namespace
Rename build-object/struct to build-object/struct-class
Add find-build-interface

To avoid build-struct/object-class again and again.
Remove return-raw-pointer keyword parameter from build-function

Because all object constructor related logic can be handled with
normal function return value.
Fix struct build constructor/method functions

Before, function-info may be NIL when used.
Add function/constructor method cache to object/struct

To avoid build same function again and again.
Merge pull request #36 from hying-caritas/cache

Add cache