SERVER-15187 Fix lifetime problem with stashed RecoveryUnit

When a ClientCursor owns a RecoveryUnit, it should destroy its
PlanExecutor before the RecoveryUnit, because storage engines in
general expect the RecoveryUnit to outlive cursors.

In particular, this fixes a bug where BDBCursor's destructor would fail
to close its Dbc* since the DbTxn* in BDBRecoveryUnit was already gone.

Closes #789

Signed-off-by: Benety Goh <benety@mongodb.com>