Fix handling of multiple magic test comments.

Must use `append` rather than `push` because the resulting list needs to be
flat.
Use a lambda instead of `and` in `reduce`

`and` is a special form and so cannot be used as the function within `reduce`.
Wrapping it in a `lambda` fixes things up.
Use magic for tests of issues #14, #19, #27, #29, #42

This massively cuts back on the elisp code needed.