Clean up REPL error management in preparation for extra tests.

This splits error management into both the parser and the runtime. It
fits more closely to Go, using proper error-compatible results.

This also move the panic-catching code to the context, adding a SafeEval
next to Eval.