SERVER-9853 retry ghostsync percolate if socket failure

Without this fix, depending on exact timing of upstream socket failure, you could lose
a chaining upstream oplog position update from a secondary.  This might then cause
a write with a certain level of write concern to time out even though enough secondaries
had applied the write.  This problem would be masked by a sufficient number of subsequent
writes, which would trigger another upstream oplog position update.

Note that this only affects chaining; nonchaining updates are already retrying when a socket
failure occurs.

Conflicts:

	src/mongo/db/repl/rs_sync.cpp
SERVER-8844 config server not in sync message is misleading
SERVER-9864: make dbhash take a list of collections to hash and mongos check should use it