SERVER-13681: Remove lock that was an incorrect workaround for Azure Drive write size limitations.

- Limit flushes to 2MB chunks to prevent hitting a limitation in
Azure Network Drives (XDrive) which have a 2MB file write size limitation.

(cherry picked from commit 78c068e5d63d77648954252a785b3673d6e314b7)
SERVER-13729: Fix Data File Growth on Windows

Reuse an existing lock to use as a lock to handle the race condition
between _flushAll, and the memory mapped file being closed instead
of holding LockMongoFilesxxx for an excessively long time.

(cherry picked from commit c4fa4dc85aec3b8dfd9ada7a58521d8f1bbf4fff)
SERVER-14198: Fix memory allocation reuse

In std::set<Pointer>, Pointer to a memory address is not a unique key.
Mmap_posix already used a unique key in the case memory was reused.
Added the same change to mmap_win.

(cherry picked from commit af4f086490d6ae51aa0c252df26751385683eaaa)