SERVER-8536 adjust replsettest base framework

Rather than deleting and recreating theReplSet global for each test, let's
swap it out once at startup and then leave it alone (and leak at the end).

This is necessary because theReplSet global cannot be deleted once you have used
it to do a batch, because the threads in the prefetch and writer thread pools
each set up a Client context on first use and there is currently no mechanism to
tell them to call a function at destruct time in order to shut down the
Contexts.

This was causing the Windows build to crash (and all builds to print the "you
didn't call shutdown() before ~Client::Context" log message).

I can't think of an easy way to modify ThreadPool such that it runs a job before
cancelling and joining all the Threads in the pool.  In actuality, I think
Client Context is broken and you should not be required to call shutdown()
before it gets destructed.

The reason the crash started happening was because we added a lot more tests to
this suite as part of background indexing, so theReplSet got deleted and reset
many more times.
SERVER-8536 correctly handle uasserts when doing queries in Index Rebuilder