Prefixing error messages

You can use the new `cork_error_prefix` function to prepend some additional text to an existing error message.

This patch also updates the internal implementation to clean up after itself better.  Before, we would grab a thread-local `cork_error` instance for each thread, but didn't clean up those instances.  Now, we maintain a (thread-safe) list of all of the `cork_error` instances that have been allocated, and register a (process-level) cleanup function that cleans all of them up.