unittest.h/cpp: Add exception catching. Closes #75.

This introduces a bits::test_runner helper class which calls
tpie::tests::start_test in its constructor and end_test in its
destructor.

The calling code calls test_runner::set_result(fct()), where fct() is
the function under test.

The calling code wraps the fct() call in a try/catch(...) block and
calls test_runner::exception when an exception occurs.

test_runner::exception rethrows the exception (using the "throw;"
statement) and tries to guess its type with various catch blocks. The
exception is reported to log_error and result is set to fail.