Embed NeedQueueItem_s inside NeedClosure_

This simplifies some pointer foolery
(need_closure_questions_vtables_ and
need_closure_questions_answers_) and reduces memory
allocations.
Add missing include

QuestionAnswer.h used size_t but did not include <stddef.h>.
Embed AnswerContext into AnswerCallbackClosure_
Rename AnswerCallbackClosure to QuestionDispatchClosure

The new name makes sense, specially since it's in the
QuestionDispatch module.
Remove DependencyDelegate abstraction

The only DependencyDelegate is a Database.  Just use
Database directly.
Rename QuestionQueueItemObject to QuestionQueueItem
Refactor NeedsCallback to not use std::function

std::function was unnecessary since we could make the class
templated instead of just the constructor.
Drop C++ STL B_Allocator

There's no real need for the complexity a C++ STL allocator
if it's only used it one place.
Drop unused B_CONFIG macros
Ignore -Wconditional-uninitialized warnings

Instead of emitting -Wconditional-uninitialized diagnostics
as warnings, ignore them.  This removes 'make' diagnostic
spam.
Fix formatting

Blank line between top-level enums.
Move QuestionQueue dequeueing into b_main
Compile ex1 and fix errors

In the migration to CMake, the examples were no longer being
compiled.  Some other refactorings (new source files) broke
running ex1, too.

This patch makes ex1 compile and run again.
Factor out QuestionQueueRoot

I'm trying to make b_main smaller.
Let caller give pthread_cond_t to QuestionQueue

Also add a QuestionQueue which does not require
pthread_cond_t.

Parameterize QuestionQueue tests on the type on
QuestionQueue.
Implement eventfd and kqueue for QuestionQueue

Callers can create a QuestionQueue which will notify a give
eventfd or kqueue when something is enqueued.
Allow 'make TestProcess', etc.

Pass through MAKECMDGOALS to CMake's Makefile.  This lets
you type e.g. 'make TestProcess' to build the TestProcess
target.
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.