SERVER-8375 sync from primary on clock skew

Manual backport of git commit ebd13ab35a338370a44e3e2891a06d31718f83aa
Do not zero-fill newly allocated files on Windows

On Windows platforms code was added to zero-fill each newly allocated data file in order to work around Windows KB http://support.microsoft.com/kb/2731284. The KB only applies for Windows 7 and Windows 2008 Server installations, so there is no need to do it on each and every system.

This fix restricts the zeroing-out code to only versions, which have had the bug. It will not check whether the hot fix has been installed.
SERVER-9248 Ignore errors when checking readahead

To test, run sudo chmod o-x /sys/dev/block
Manual backport of commit 9501c1bfce47079de54e0aba7b78bae341e3e916
SERVER-9259 Don't move chunks for non-empty hashed collection during shardCollection cmd
SERVER-10231 disallow creation of indexes on system.indexes

Conflicts:
	src/mongo/db/index.cpp
	src/mongo/db/namespacestring.h
SERVER-10793 always step down when another primary is seen
SERVER-11560 Close file handle in shell util
SERVER-11871 Fix assert in Page::Initialize.

This is a clean backport from this commit from V8:
https://code.google.com/p/v8/source/detail?r=13896
SERVER-12034 Fix bug with SIGXCPU causing a core dump in mongoD/mongoS.

Graceful shutdown was chosen so we can log the signal; There is no risk
of data corruption.

Signed-off-by: Matt Kangas <matt.kangas@mongodb.com>
SERVER-12132 Stop using stringstream in Value::coerceToString()

This speeds up the function by two changes:
1) Using StringBuilder (through str::stream) rather than stringstream.
2) Not constructing a StringBuilder or stringstream when not needed.

At least with libstdc++, constructing and destructing a stringstream is
extremely expensive.
SERVER-12170 stop calling relinquish() when replicaset nodes decide not to veto an election
SERVER-9248 Fix up try/catch block
Merge remote-tracking branch 'upstream/v2.4' into v2.4