VM: clear the local roots before garbage collection in general_error()

If we got here from memory_protection_error(), then the stack pointer
has been fiddled with and the elements of these vectors, which address
stack-allocated objects, are bogus and needs to be resetted.
VM: data_roots must be empty before unwind_native_frames is called because it doesn't return