Add return-processor

Like arg-processor, group return value processing related code together.
Remove array length from translator

Conceptually, translator is only about type itself, array-length
should be argument related concept.
Separate pointer converter

And share converter for some type.
Add general converter cache

So that only one converter instance is needed for each general
converter type.
Merge converter into translator

Reduce one layer.  And translator can be shared if corresponding
converter can be shared.
Re-implement object/struct constructor return type fixing

Pass the return value interface info-ffi to build-function, use that
for return value type instead.
Merge pull request #44 from hying-caritas/converter-translator

Share converter, merge converter into translator and reimplement object/struct constructor fixing
function.lisp: Split interface translators
function.lisp: Add interface translator cache

With this, only one translator is needed for each object/struct class.
function.lisp: Split array translator

To make it easier to add more array type in the future.
Merge pull request #45 from hying-caritas/interface-translator-cache

Interface translator cache