Unwind stack and surely destroy objects on a stack when a C++ test fails.

Previously cutter's assertions teminates a test immediately when
it fails. The termination is performed with longjmp() that doesn't
call a destructor of objects created on the stack.

Some C++ programs and libraries use a technique called RAII in
which freeing resources is done in a destructor. The most typical
usage is to free allocated memory. In other instances, ifstream,
a part of standard C++ library, closes the opned file on its
destructor if needed. Some code also unlocks in the destructor.

Therefore, unwinding a stack that surely calls destructors is
inevitable. This patch realizes it by throwing a special exception
instead of longjump() at the needed situatioin.