SERVER-14526 Introduce ASSERT_THROWS_WHAT and ASSERT_THROWS_PRED to the unittest framework.
SERVER-14527 Remove erroenous expectations about setting of last error from dbtests.

Commands are not guaranteed to set last error, except for the write commands and forceerror.
This patch fixes up dbtests to not expect it.
SERVER-14527 Call setLastError explicitly on wire write failures in mongod.

Also in the forceerror command.  These are the only places where we promise to set
last error information.
SERVER-14527 Do not setLastError in assert_util.

MongoD and MongoS set it explicitly for write commands and wire writes, and in the
forceerror command, which is better than invoking it every time an assertion is
thrown.  It prevents swallowed exceptions from being reported, and obviates the
LastError::Disabled type and "last error disabled" functionality in general.
SERVER-14533 Break the foundation-lasterror-network circular dependence in build system.

The dependence was most glaringly reflected in the unittest library's dependence list,
and removing it from there required adding some missing library dependences to a few other
C++ unittests.
Merge remote-tracking branch 'upstream/master'