Proper marshaling when returning a boolean value in a func.

_C_CHR can be a bool, but also a numerical value, so we handle
that properly now.
Update pirouette the latest version.