For C++, throw exception on assertion failure

This is more useful than just calling abort() as the user can catch
std::runtime_error for special handling.