SERVER-8678 Implement automated config schema upgrade from v4 to v5

Correctly set timestamp in config.collections.
SERVER-9818 allocate socket file descriptors before opening datafiles
SERVER-10707 use ScopeGuard to close sockets in setupSockets

fixes coverity leakage report
SERVER-10285 uassert that s2latlng is valid, print out if it's not
SERVER-8375 sync from primary on clock skew

testing this was difficult (as we couldn't manage to simulate a cycle)
what I eneded up doing was:
    1. added a fail point to oplog such that when the fail point is active the new code will be hit
    2. altered sync_passive2.js (because it had chaining in it) to do the chaining portion twice with the failpoint active the second time to make sure the new code caused us to sync from the primary again
    3. https://gist.github.com/dannenberg/dcda9353b637edda6a16 for the full diff
SERVER-10688 sync6.js - verify failed in DistributedLock:lock_try

Gracefully give up trying to acquire lock when detected unexpected lock state change.
SERVER-10724 better exception handling in health poll