User stories: test description before assertion messages
suite: simplify test results return value

When called, a suite object will now return only the number of passes
and fails. All other reporting can be done via the runtime message
callback(s).
test: re-write as macro to simplify

Tests should be easy to create, so write as a macro to hide the
internals of the test data structure.
error?: use error-checking predicate

... instead of error presence or absence assertions. This means fewer
assertion functions to remember, and no need to force test writers to
remember to wrap possible-error expressions inside thunks.