SERVER-8226 C++ driver fassert 16464 when runGlobalInitializersOrDie is not called

Changed implementation to not rely on the global initialization framework.

Conflicts:
	src/mongo/client/dbclient_rs.cpp
SERVER-11502 Moved OpenSSL multithreading callbacks
SERVER-5625 don't throw on problem setting shard version on initial connect
SERVER-5625 SERVER-7426 allow all connections in all states to tolerate downed shards and primaries

Conflicts:
	src/mongo/s/shardconnection.cpp
SERVER-11099 Partial cherry-pick from upstream v8 to fix UB related mongo shell crash

This is a backport of the portion of https://github.com/v8/v8/commit/b3775cf3
relevant to our vendored version of v8. Please see that commit for more
details on the nature of the undefined behavior and how this change fixes it.

This will repair the issue with the mongo shell crashing on shutdown
when compiled with clang-3.3 or newer.

(cherry picked from commit 670c981819ed1512b9f623d3879901dda606ed20)
SERVER-7246 external user authentication should use primary preferred read pref
SERVER-7246 rename internal dbclient_rs auth helper
SERVER-11971 slaveok versioning logic should also apply to read prefs
SERVER-10538 SERVER-11731 change segfault to uassert on improper use of $where
SERVER-12094 Do not strip false setParameter options from config file
SERVER-11194 ignore non-numeric expiresAfterSeconds on TTL indexes
SERVER-10919 logging in ~ReplicaSetsMonitor crashes
SERVER-9238 Don't set a timeout in shell autocomplete

In V8, timeouts are fatal so the shell would become unusable if the
timeout fired. Since the timeout didn't cause remote calls to return
early (which is the most common cause of slow autocomplete), this didn't
actually do anything useful anyway.
SERVER-12041 improve retry logic for read preferences without slaveOk set
SERVER-12146 do not check writebacks if calling gle from wbl
SERVER-11194 fix log message