Only free args buffer if we already flattened.

Otherwise, we're calling free on something inside a register frame.
Make exceptions thrown from C catchable.

Previously, they always would panic and exit the VM. Now they can be
caught.