Raise WTimeoutError for wtimeout error PYTHON-575

PyMongo defines a TimeoutError exception, added in PyMongo
1.8, that is supposed to be raised if the server returns
a wtimeout error for inserts, updates, or removes. This error
has not actually been raised by the driver since MongoDB 1.8,
which changed how wtimeout is reported by the server.

This commit fixes the problem by raising a new exception,
WTimeoutError, instead of OperationFailure when the server
returns wtimeout. WTimeoutError is meant to distinguish this
particular error from other "timeout" errors handled in the
driver. It inherits from (now deprecated) TimeoutError to support
applications and libraries that already catch TimeoutError.

PYTHON-576 will add the server error document to OperationFailure
and subclasses (e.g. WTimeoutError), which can be used to check
return values like 'n', 'updatedExisting', and 'writtenTo', even
though wtimeout error occured.