Don't uncoditionally trash ->caller on unwind.

If an exception is thrown, ->origin points to the frame we threw from.
If we tried to get the backtrace after the unwind happened, the caller
chain was already trashed, even though ->origin ref'd the frame. Move
clearing up the caller chain to frame ref-count decrement to avoid the
problem.