Make `def` support multiple definitions.

Like `setq` in Elisp, and roughly like `let` in Racket/Scheme/Lisp.

One of the annoying things about `define` vs. `let` is that `define` is
a longer to type, although you also save some parens. But the other,
even more annoying thing is needing to use multiple forms for multiple
definitions. This commit tries to address that.