Make GNU Guile a required dependency

Compiling with CONFIG_GUILE=n has been broken for a while now and I have
no interest in maintaining guile as an optional dependency going
forward.
shell-begin macro

The shell-begin macro takes a list of lists of strings.  Each list of
strings is given as an argument list to (shell-sync) in sequence.  If
any of these commands return a non-zero exit status, 'shell-error is
thrown and the script is terminated.  An example expansion:

(shell-begin
  (("do-1" "blah")
   ("do-2" "blah")))

becomes:

(if (not (= 0 (shell-sync "do-1" "blah")))
  (throw 'shell-error)
  (if (not (= 0 (shell-sync "do-2" "blah")))
    (throw 'shell-error)
    #t))
use xmalloc