Requires-clauses now working, at least in a rather basic form.

Herd now reports the number of executions that violate at least one
requires clause. This is the bare-bones functionality, of course,
but I believe I've implemented it in such a way that the functionality
can be extended easily, e.g. to say which requires-clauses are
violated, and by which specific executions.

The change is a little bit violent, I'm afraid. I made each
implementation of "check_event_structure" return not only the
final state, but a (state * int) pair. The first component is
the final state, as before, and the second component is the number of
requires clauses that the execution violated along the way. All the
other implementations of check_event_structure return 0 by default.
It would, of course, have been nicer not to have to modify those files.