More dpor tests
Add exhaustive scheduling tests
Optimal DPOR
Bug fixes
Re-implement source-set DPOR
Refactor the scheduler code
Optimize recent_dependency_cv
Restore classic and simple source-set based DPOR algorithms
Cleanups in testsuites
One more test for sleep-set blocking detection
Fix spawn_opts when 'monitor' is an opt
Fix a receive had-after bug in the dependency relation

An identical message from another process could be erroneously identified
as the one that was received in a receive statement with an after clause.
This caused additional interleavings (to reorder the receive and send
statements) which were uninteresting, since the receive statement would
receive another message anyway.
Minor fixes
Receiving without trapping exits
Smaller version of Manolis rush-hour, suitable for testing DPOR
Strengthen dependencies

The dependency relation is conditional on the patched cases and it may
lead to sleep set blocking. Make the relation unconditional for the time
being. Only tests in known_issues are broken by this change.
Classify some more instruction pairs as independent
Merge branch 'optimality'