Use CREATE-TYPE-... instead of just making a FOREIGN-POINTER.  Do some
simple string detection on (:pointer TYPE) types, generating a
FOREIGN-STRING instead of FOREIGN-POINTER.
INHIBIT-STRING-CONVERSION macro now prevents string-type returns from
being automatically converted to native lisp strings.