SERVER-13463: Option Validation for NT Services

The current working directory for NT Services differs between installation time
and execution time. This leads to subtle user bugs where the service can fail to
start because directories do not exist. In the worst situation, the log file
directory may not exist which makes the debugging near impossible.
SERVER-13964: Shrink Windows Binaries with VS2013 Update 2

Enable new compiler flags that shrink the binaries if we are using VS2013 Update 2 or later
SERVER-13635 Kill BSONObjExternalSorter and use Sorter directly
SERVER-13641 Replace InterruptStatus with OperationContext in agg
SERVER-13641 Make agg use OpContext-aware DBDirectClient
SERVER-13641 get OpCtxImpl out of DocSourceCursor
SERVER-13635 Remove Database::_magic
SERVER-13635: add DatabaseCatalogEntry as an interface
SERVER-8995 added gperftools-2.2 generated headers and SConscript files. cpu-profiler build tweaks.

config-10gen_macos.h:
- generated by: ./configure
- disabled HAVE_LIBUNWIND_H

config-10gen_linux.h:
- generated by: ./configure --enable-minimal
- applied config-10gen_linux.h changes made in src/gperftools-2.0/src/config-10gen_linux.h in commit eee3fe4ce66c7bbda9329a3c8bd8e3549b07437c:
    SERVER-4683 Support the imported tcmalloc, ystem tcmalloc or the default system allocator library.
    Pass --allocator=tcmalloc (default on Linux) or --allocator=system (default elsewhere)
    to control which allocator is used, and --use-system-tcmalloc to use the system-
    installed tcmalloc instead of the one in the mongo source tree if you use --allocator=tcmalloc.
- applied config-10gen_linux.h changes made in src/gperftools-2.0/src/config-10gen_linux.h in commit 498d9102e00e61ca2d41b7db1448969728884b50:
    SERVER-6758 - use third_party profiler when using --use-cpu-profiler
                  does require libunwind installed on system

SCons --use-cpu-profiler changes:
- enabled HAVE_UNWIND_H for use-cpu-profile
- excluded cpu profile commands from mongos
SERVER-8995 changed gperftools version in build configuration and source files from 2.0 to 2.2
SERVER-13674 fix whitespace in MultiPlanStage
SERVER-13760 Do not call dateToISOString if date is not formatable
Revert "SERVER-13760 Do not call dateToISOString if date is not formatable"

This reverts commit 3b97c0870427f676cf3ffbddabc5df8b1fa44fa5.
SERVER-14025 Fix race condition in mongos_cache_invalidation.js
SERVER-13737 Pull CollectionOptions out into libcollection_options.a
SERVER-13737 CollectionOptions parser skip size/max if non-numeric
SERVER-8492 Change socket check to be sun_path[0] != '\0'

Signed-off-by: Benety Goh <benety@mongodb.com>
SERVER-14015: Fix S2 Compilation on GCC 4.9/Solaris by choosing sqrt(double)
SERVER-10177 Remove all Js instances of "throw 'string';" with "throw Error();"

Includes both the initial patch to remove all throws and patches for all failing tests

Signed-off-by: Benety Goh <benety@mongodb.com>
SERVER-13446 Add timegm Solaris implementation to third_party