Move _trap assignment to after the runloop.

It'll never be set initially, so just reset it if it's set and return.

Need to check inside inner run() calls for trap returns so that _trap
can be set for outer runs as well.
Fix dumb mistake.

Should return whether the vm wasn't trapped, not whether it was.
run until complete in call_function_nt().

TRAP may need the ability to indicate a specific flag. As is, it now
behaves as a sort of yield, returning control to whatever called run().
As such, trap should be used, for now, as a way of indicating that the
VM is stopping itself to give the host process a chance to do stuff.

Currently, the JOIN instruction ignores the result of run() since it's
not intended to handle yields from a joined thread. call_function_nt is
an oddity since it's a wrapper around other VM behavior that allows
simple calls into the VM, but also doesn't do anything with a TRAP
other than to ignore and rerun the VM.