SERVER-14680 remove incomplete unit test
SERVER-14378 fix duplicate assert codes
SERVER-13635 Use StringData and StringMap in DBHolder
SERVER-14584 Use correct algorithm in BtreeLogic::Builder

Both algorithms cover phases 2 and 3 of forground index building. Importantly
they both take as input pre-sorted data that has already been extracted from
the raw documents (phase 1).

OLD ALGORITHM:
  Phase 2:
    Add all keys to buckets. When a bucket gets full, create a new bucket and
    link it as the original bucket's parent pointer. At the end of the stage
    we have a linked-list of leaf nodes starting as the left-most corner.

  Phase 3:
    Walk the linked produced by phase 2, and build the layer above the leaves.
    With each bucket, except for the last (right-most), pop* its highest key
    and add it to the bucket that will be it's parent. If the current parent
    bucket is full a new one is added to higher-layer linked list as in
    phase 1. Phase 3 is repeated on the new higher-layer linked list until you
    get a layer with a single bucket which is marked as the root of the tree.

    * Importantly, popping a key is what sets the nextChild pointer on a
    bucket.  It is set to what used to be the prevChildNode of the key that is
    popped.  A major flaw of this algorithm is that because no key is ever
    popped from the root, its nextChild pointer is never filled in.

NEW ALGORITHM:
  Phase 2:
    Add all keys to buckets. When a bucket gets full, pop the highest key
    (setting the nextChild pointer of the bucket to the prevChild of the
    popped key), add the popped key to a parent bucket, and create a new right
    sibling bucket to add the new key to. If the parent bucket is full, this
    same operation is performed on the parent and all full ancestors. If we
    get to the root and it is full, a new root is created above the current
    root. When creating a new right sibling, it is set as its parent's
    nextChild as all keys in the right sibling will be higher than all keys
    currently in the parent.

  Phase 3:
    Does nothing. This may go away soon.

Non-exhaustive list of benefits to the new algorthm:
* Generates a valid btree.
* Doesn't require a second pass over all of the buckets in the index. This can
  be significantly faster for indexes that don't fit in ram.
SERVER-14584 Clean up BtreeLogic::pushBack/_pushBack naming

There are no functional changes, other than the file:line that would be
printed on invariant failures.
SERVER-13951 Use a WriteUnitOfWork for each document in update and delete
SERVER-14604: Add replSetGetConfig command
SERVER-13833 userAdminAnyDatabase role should be able to create and drop indexes on admin.system.users and admin.system.roles
Revert "SERVER-14604: Add replSetGetConfig command"

This reverts commit 172d4f6f8bd09d0b2b77d9fb3bf280d01cfb72a1.
SERVER-14701 backup auth role should allow running the collstats command for all resources
SERVER-13961 Pass through OperationContext in the JS framework

The JS framework uses DBDirectClient, which requires OperationContext in
order to not conflict with locks, which have already been acquired.

This change also makes dbEval not use pooled scopes and create a new scope
instead.
SERVER-14604: Add replSetGetConfig command
SERVER-13961 RIP Client::lockState()
SERVER-14442 Implement processing of replication handshake in the ReplicationCoordinatorImpl
SERVER-14442 Implement functions to build replSetUpdatePosition commands in the ReplicationCoordinatorImpl
SERVER-14135 Fix else-statements to conform to style guide
SERVER-13681 Revert "SERVER-7378 Prevent WRITETODATAFILES and FlushViewOfFile from running at the same time"

This reverts commit 5352345eda2ffa24a72af1d5bbaccaa32bcb1006
SERVER-14623 fixed shell function ObjectId.fromDate for dates before 1978-07-04T21:24:15Z

ObjectId.fromDate is not correct for all dates

There is an under-run for dates less than 1978-07-04T21:24:15Z ('Math.pow(2,28) - 1' seconds)
Added extra test for upper date limit.

Closes #725

Signed-off-by: Benety Goh <benety@mongodb.com>
SERVER-9482 add flag to enable activation of FIPS mode (off by default)
SERVER-14633 rename prepareToYield() and recoverFromYield() to saveState() and restoreState()

Also renames PlanExecutor::getStages() to PlanExecutor::getRootStage()