Herd now complains if any .cat file contains a provides-clause after
a requires-clause. In other words: users are required to write their
.cat files in two phases, firstly giving all the provides-clauses,
and after that giving all the requires-clauses.

Doing so clarifies to the user the order of evaluation of these clauses.
All provides-clauses are evaluated first, and executions that violate
them are silently removed. Then the requires-clauses are evaluated on
the remainder, and any violations are reported to the user. If a
requires-clause came before a provides-clause, and both were violated,
it might be confusing to the user; i.e., should the violation be
reported, or should the violating execution just be silently deleted?