Simplify the main execution loop of the interpreter

Made the code easier to follow, and handle halt(N) as normally
happens in a Prolog implementation like SWI-Prolog.
9 files changed