SERVER-5724 Mark dbtemprelase{,cond,if} destructors as throwing

This is a stop-gap solution to prevent c++11 builds from terminating when
relocking and reinitializing Client::Context fails. In c++11 destructors that
aren't explicitly marked as throwing are implicitly noexcept(true).

For similar reasons it is invalid to put dbtemprelease into a smart pointer
since the smart pointer's destructor isn't marked as throwing. The few places
that did that were also changed.

dbtemprelasewritelock is unused so it was removed rather than fixed.