SERVER-6405: start moving delete code into collection structure
SERVER-6405: better encapsulation around RecordStore
SERVER-6405: move RecordStore to storage
SERVER-10715: change MatchableDocument api to allow for caching of iterators
              this allows a 2x performance increase for scans
Remove unused message
SERVER-9518 Store delegatable roles list in User object in memory
SERVER-10715 Fix unit test compilation failure.
SERVER-9518 Hook up RoleGraph to AuthorizationManager and move all handling of built-in roles into it
Add MONGO_HASH_NAMESPACE macro for use in implementing std::hash<T>.
SERVER-4899 $size for aggregation
SERVER-10086 print typeName rather than type number on type error in $set operators
SERVER-9518 Move V0 system role constants into RoleGraph
SERVER-9518 Rename "system" roles to "built-in" roles
SERVER-10540 better error message now
SERVER-9109 continue rather than return on ECONNABORTED and EBADF
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