Add a missing dependency
Even more dependencies for messages

Matching sends with receives is problematic. This commit removes yet another
refinement that existed in the dependency relation which prevented reversing the
delivery of a message with a timeout-enabled receive if the message was not the
one actually received. It turns out that if this relation is used to detect
initials in the wakeup tree (where receives have not been updated to reflect
their new status) we miss interleavings.

Sad...
Add 'blame' info to wakeup tree entries
Add interleaving_bound option
References are now a fixed sequence per process.

In a way similar to persistent PIDs for child processes, references are now also
monitored and reused. This is a workaround to avoid having dirrerent refs
for timers which are started from the 'same' state.

The deeper problem is that the dependency relation marks cannot (and should not)
tell apart calls to start_timer which are issued by the same state, but if the
original reference has been lost a new timer-simulating process will be
referenced as the one handling the timer. Apart from process pollution, this
also leads to the new timeout message potentially racing with an older one.

This manifested as a bug in the accompanying test, where on the 40th
interleaving Concuerror would ask a 'wrong' timer-simulating process to send the
timer expired message.

Fixes #42.
runtests.py recompiles needed stuff
Improve command line interface

* Proper overriding for concuerror_options/0 defined in files
* Options work when concuerror:run/1 is used directly from an Erlang shell
* 'Direct' loading (via -f) has been improved
* A few more sanity checks were added
* Got rid of the 'undefined type' warning by Dialyzer!
Better handling of race pair messages

Race pair messages are now turned off by default and only shown together with
erroneous interleavings.