zlisp: propagate error messages back up the call stack.

* lib/zemacs/specs/zlisp_lisp_spec.yaml (eval-expression):
Specify behaviour when called interactively with any input type.
(eval-buffer): Specify errors that are caught.
* lib/zemacs/callbacks.lua (get_and_run_command): Display error
messages that precolate up to here.
* lib/zemacs/eval.lua (execute_function): Return early with
diagnostics when called with a void or invalid function name.
Otherwise, be sure to propagote any error from subroutines.
(call_command): Propagate any error from execute_function.
(eval_command): Propagate any error from call_command.
(eval_string): Return early with diagnostics for evaluating a
void variable.
Propagate any error from eval_command.
* lib/zemacs/zlisp/lisp.zl (execute-extended-command): Propagate
any error from execute_function above.
(eval-expression): Remove FIXME. Transform boolean return values
correctly for display by caller.
* lib/zemacs/main.lua (main): Display reason for lisp file load
failure.
* lib/zemacs/zlisp/move.zl (backward-char, forward-char): Always
return `nil`, like Emacs.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>