A partial fix for issue #2100: use boost::throw_exception for all exceptions except thread_interrupted