Fix leaking of testers across tests

Testers::Tester-s were being reused across test cases.
Craete one Testers::Tester per test case (or as desired).

Also fix bugs.
Test exact signals in TestQuestionQueue

Currently, try_consume_event is nearly pointless since you
can only EXPECT_TRUE() and never EXPECT_FALSE().  Add a
method to distinguish between implementations which may have
spurious signals and those which should/must not.
Remove blocking QuestionQueue dequeue

1. Caller are expected to block anyway.
2. The caller had no way to distinguish between no queue
   items available now and a closed queue.
3. Some implementations of blocking were wrong.
Remove faulty assertion in QuestionQueueRoot

If a QuestionQueue was closed, the QuestionQueueRoot may
not be deallocated before a call to
b_question_queue_finalize_root.

did_deallocate is only useful for checking for double-frees,
so guard it behind !NDEBUG.