SERVER-5175 Need "failpoints" system to facilitate testing core server

Step 1: Implement and test the FailPoint class

Conflicts:
	src/mongo/SConscript
SERVER-5175 modified tests to better print errors
SERVER-7265 fail_point_test failure on bbot
SERVER-7290 Make it harder to misuse failpoint
SERVER-5175 Need "failpoints" system to facilitate testing core server

Step2: Implement infrastructure for accessing fail points externally

Conflicts:
	src/mongo/base/error_codes.h
	src/mongo/db/db.cpp
Fix up fail points to be compatible with parsing command line before running global initializers.

SERVER-7332
SERVER-7556 Break FailPoint library into smaller pieces

Conflicts:
	src/mongo/SConscript
	src/mongo/db/db.cpp
	src/mongo/s/server.cpp
SERVER-10134 Report errors during GetMore processing

This is necessary for SERVER-5932 (aggregation returning cursors)

Conflicts:
	jstests/slowNightly/sharding_passthrough.js
	src/mongo/db/instance.cpp
	src/mongo/db/ops/query.cpp