test/.../delayed_call.cpp: delete call that is about to run

This test creates a delayed call and then removes it, using another
delayed call, just before the former call runs.
test/.../delayed_call.cpp: improve the test using the X struct

1) Use auto rather than declaring explicitly the type.

2) Throw and exception, to fail the test, rather than just
   printing a message on the stdout.
test/.../delayed_call.cpp: throw runtime_error on test case failure

To have a more clear indication that a test failed, throw runtime_error
if the test fails, rather than just printing an error message.

For simmetry with other test cases.

Strategy to be refined later, when we'll switch to a unit test framework.
Merge pull request #12 from bassosimone/more-delayed-call-tests

Delayed call tests: one more test and minor improvements