zmacs: generate variable initialisation code with zlc.

* bin/zmacs: Remove zmacs.variable requirement.
* lib/zmacs/zlc: Output Defvar import code.
(writef): New function. Short-cut for io.write +
string.format.
(defvar): New zlisp handler for variable definitions.
(make-variable-buffer-local): New zlisp handler for tagging
buffer local variables.
(local, var): Rename from this...
(localfun, localvar): ...to this. Adjust all callers.
* lib/zmacs/commands/: Move from here...
* lib/zmacs/zlisp/: ...to here.
* lib/zile/variables.lua (set_variable_buffer_local): New function
used by 'make-variable-buffer-local' output from zlc.
* lib/zmacs/variables.zl (Defun): Move from here...
* lib/zmacs/eval.zl (M.Defun): ...to here.
* lib/zmacs/variables.zl: Remove...
* lib/zmacs/zlisp/variables.zl: ...and rewrite here in zlisp.
* lib/zmacs/zmacs.mk (zmacscmdsdir, dist_zmacscmds_DATA): Adjust.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
zmacs: less cryptic message when no suitable LUA is available.

* bin/zmacs: When the shell header tries and fails to find a
LUA interpreter to re-exec with, list the commands that were
not found, and how to solve it.

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