Removing python2.6 dependency on unittest2

Limits assertions to those assertions present in 2.6.
Factoring out MutualAuthenticationError into its own file
Allowing different settings for mutual authentication.

* REQUIRED: all responses will be authenticated with the exception of errors.
  Errors will have their contents and headers stripped. If a non-error response
  cannot be authenticated, a MutualAuthenticationError exception will be raised.
  **NOTE** at the moment, the way that requests resolves redirects does not
  currently support authenticating redirects. As such if you really want to
  require mutual authentication, you have to disallow redirects in your initial
  request: https://github.com/kennethreitz/requests/issues/1183
* OPTIONAL: mutual authentication will be attempted if supported, and if
  supported and failed, a MutualAuthenticationError exception will be raised.
  Responses which do not support mutual authentication will be returned directly
  to the user.
* DISABLED: mutual authentication will not be attempted, even if supported.