Allocators are automatically freed

This patch removes the public `cork_alloc_free` function.  Allocator
instances are now fully managed; we'll automatically free every
cork_alloc instance when the process finishes.  They're freed in the
reverse order that they were created, which ensures that each
allocator's parent is still around when the child allocator is being
freed.