Pass --error-exitcode=1 to Valgrind on Travis

Previously, Valgrind errors were getting reported but
ignored.
Use gmock instead of gtest

Future tests call for mocking objects (e.g. Question-s).
gmock seems like a good method to mock objects.
Remove unnecessary parameter names from prototypes
Assert false is returned upon invalid parameters
Make DependencyDelegate optional in AnswerContext

Tests don't wish to give a dependency delegate.
Write test ensuring AnswerContext enqueues Question

Caught a bug in AnswerContext.
Factor mocks into separate file

Fix (or worked around?) a bug where duplicate lambdas were
being generated, causing symbol collisions.
Fix simple bugs in QuestionQueue deallocation

* The queue was not being cleared properly, triggering an
  assertion.

* The queue was being freed with C++ delete instead of
  b_dealloc.