Improving macro robustness against malformed input, and improving error
messages.

Note that previously:

    (macro foo ())

was legal, whereas now it must be written:

    (macro foo () null)

i.e. we require a body.