SERVER-7497 refactor and rationalize mongo/util/file.h; create file.cpp

Remove the FileInterface base class.  Move the code for non-trivial members
of the File class into a new mongo/util/file.cpp.  Make the behavior of
Windows and non-Windows versions of functions match.  Test the return status
of every OS API and report all errors in detail.
SERVER-7933 Do not use O_NOATIME with read-only file opens

Only use the Linux O_NOATIME flag when opening a file for read-write.
add key_type to UnorderedFastKeyTable
use StringData in more places, and change mapsf to use any type of map

Conflicts:
	src/mongo/db/d_concurrency.cpp
	src/mongo/db/d_concurrency.h
SERVER-7918 Linux page_faults as reported by ProcessInfo::getExtraInfo should be 64bit, not 32 bit
SERVER-8018: don't check ScopedDistributedLock for nwo
SERVER-8090: don't check PooledScope constructor for now
do not run map performance test in debug builds
SERVER-6656 prevent SSL memory leaks

If a BackgroundTask should attempt to use SSL (via an outbound connection),
this commit will now ensure the SSL thread-specific data is cleaned up on
thread exit.
SERVER-8522 store more lines in RamLog
SERVER-8301 fix handling of server info on FreeBSD

On FreeBSD 9, the number of cpus is only 4 bytes, but we are reading into an 8-byte value.
I relaxed the size check and also fixed up the error printing when something does go wrong.
SERVER-9047 Don't limit line length when reading numa_maps
SERVER-9214 Change tolowerString argument type to StringData
SERVER-6514 Fix accidental backport of future use of ProcessId to 2.4 branch
SERVER-9325 Add blockCheckSupported and hostInfo support to Solaris/SmartOS

Implement a processinfo_*.cpp file for Solaris, providing support for
blockCheckSupported features and the the hostInfo command.  Rewrite the
readLineFromFile() function from processinfo_linux2.cpp and move it into
processinfo.cpp where it can be called for Solaris as well as Linux.
fix assert ids #603