PERL-349 fix request ID misordering when reconnecting

When executing a query, the request ID was taken from the global
variable $MongoDB::Cursor::_request_id and embedded into the query
string.  However, the hash of information returned to construct a cursor
later returned an alias to the global variable rather than a copy of the
request ID contained in the query string.

If the master was disconnected when attempting to send the query string,
database introspection commands (e.g. "ismaster") would increment the
global variable for their own queries.

After reconnection, the original query was sent.  When the cursor for
the original query was finally constructed, because of the aliasing, the
expected request ID was the current value of the global variable
(incremented by 'ismaster' etc.), not the request ID from the query.

This bug was exposed under threads because threads start connections
disconnected.

This commit fixes the bug by returning a copy of the value of the global
taken right after query header construction (in which the global is
incremented for the new request).
have cluster harness use blib if available and report config
refactor test connection construction

More tests use the default connector and others use a refactored
connection builder to abstract out common treatment of MONGOD,
SSH, find_master, etc.