Use builtin (and safer) ecl_stringp for string_p().
Fix mismatched preprocessor names.
Use better guard name.
Define an OBJNULL macro for ABL.
Use proper lisp type in func name, in case anyone cares.
Stick with normal convention for conversion func names.
Add test harness and unit testcases.
Fix FFI types for *int return parameters.
Report non-specific errors with a message.
Indicate errors by setting ERROR-STATUS:ERROR with NO-ERROR qualifiers.

It turns out that functions eat any errors that occur in their bodies,
so the only way to get errors out is to NO-ERROR it and make the caller
check ERROR-STATUS:ERROR. Yuck.
Add missing check for null lisp object input.
Pass null pool when ? is supplied.
Check for unknown lisp/ABL inputs and handle them accordingly.
Always return false from shecl_type(OBJNULL, x).
Don't try to add an object to a null pool.
Fix boolean herp-derp.
Fix symbol package.
Fix stringp behavior.

Using cl_stringp() instead of ecl_stringp() clears up some potential issues
if the string isn't a base string, and for some reason cl_stringp() returns
T for OBJNULL. Wat.
Add debugging macro just in case.