Move question vtable resolution to point of deserialization

* Add B_QuestionVTableList data type.
* Allow deserialization with a user-specified closure.
  (This feature is currently used to deserialize using the
  collection of question vtables.)
* Remove UnresolvedQuestionAnswer and UnresolvedDependency.
Fix formatting
Fix various memory leaks

Detected using valgrind-3.8.1 on Mac OS X 10.8.3.
Add database [de]serialization in Python example
Remove B_BuildContextInfo structure

Exposing the B_BuildContextInfo structure was meant to
support fetching a BuildContext Python object instance from
a B_BuildContext structure.  This approach was incorrect and
was previously corrected.  The B_BuildContextInfo structure
thus does not need to be exposed anymore.
Explicit empty parameter list for C functions

Function prototypes with an empty parameter list are treated
as function prototypes with a variadic parameter list.  In
order to declare a function accepting no parameters, one
must use a single 'void' parameter:

    int foo();      // Variadic.
    int bar(void);  // Nulladic.
Wrap C++ exceptions with B_Exception

Had to make Exception.c a C++ file.
C++ify Exception.cc
Fix some GCC -pedantic warnings
Specify C standard explicitly in Makefile