Various changes.

- The continuation passed to check_event_structure now takes an
  additional argument: an int option to record how many requires-
  clauses the execution failed. This is set to None for all of
  the machine models.

- Added set "na" for all actions with non-atomic memory order.

- The CPP11 model checker now handles requires clauses properly. The
  number of executions that fail at least one requires clause is
  reported in the Herd output.

- Re-programmed Event.same_location more defensively.

- Made interpreter's environment lazy. That is, pre-defined sets
  and relations are now only evaluated on first usage. This may be
  more efficient.

- The interpreter's "interpret" function now takes an additional
  "failed_requires_clause" parameter, which is a unit->unit function
  that is called when the execution fails a requires-clause.

- Added a suite of tests for the CPP11 model.