zmacs: add `set-buffer`.

* lib/zile/buffer.lua (push_buffer): New function. Temporarily
change the current buffer.
(with_current_buffer): Use it.
(unwind_buffer_stack): New function. Unwind back to the original
current buffer.
* lib/zmacs/callbacks.lua (get_and_run_command): Unwind the
buffer stack after every command.
* lib/zmacs/zlisp/buffer.zl (set-buffer): New command to
invisibly switch buffers until zmacs returns to the top-level
command loop without updating the interface.

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