Changed implementation of run-trace

run-trace now returns the value of the last instruction that was evaluated.
This is useful because if this last instruction was executing a non-looping trace, the value returned will be the new state to restart the regular interpreter from.