Fixing comment
Renaming kerberos module to kerberos_.

The kerberos module itself imports kerberos, expecting to get the kerberos
package, but it currently gets itself, which means none of the kerberos library
routines are actually available and everything's a non-starter. This follows
pep8's guide for what to do when you have a variable that conflicts with a
builtin. Add a trailing _.
Starting a test suite
Testing various error scenarious.
Using alternate patch syntax.

There's a belief that using the @patch decorator syntax with the standard
unittest library may hide tests.

https://github.com/requests/requests-kerberos/issues/1
Handling errors more sensibly

If authentication fails, the server response will be passed to the user. This is
likely to be a 401. A 403 would indicate successful authentication with an
unauthorized user.

If the client requires mutual authentication (the default, similar to ssl
certificate validation in requests proper), an exception will be raised so that
the user does not have the opportunity to accept an untrusted response. If
they're okay without requiring mutual authentication, then they can specify that
when constructing their HTTPKerberosAuth object.
Adding more tests
Make work with new API

Request objects no longer have a send mechanism. We need to either generate a
session and send with that or just use the connection connected to the response
object. This was essentially stolen from HTTPDigest authentication.

Additionally, performing another request during mutual authentication doesnt
make sense. We're authenticating the response we already received.
Adding basic docs
Supporting testing on python 2.6
Normalizing log messages
Trusting unauthenticated server responses that are not 2xx messages.

It's fairly common for servers to not authenticate certain types of messages
like redirects which are redirecting the request to the server which actually
owns the resource. The redirecting web server isn't protecting the resource
itself, so it doesn't authenticate the user and cannot authenticate the
response. While this is in no way ideal, it's common enough to cause problems in
every day use. Similarly, broken web servers which send 5xx errors are not
likely able to authenticate those 5xx messages.

This is questionable from a security perspective but is pragmatically necessary.
Auth handlers are called with prepared request objects, not responses.
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.
Updating docs to reflect new mutual auth settings
Support authentication of redirects, sanitize untrusted responses.

* Track multiple contexts so that if/when we can authenticate redirects, we can
  support redirects to different hosts.
* We want to be able to return unauthenticated errors to the user because they
  can be helpful in debugging, but we want to ensure that their content isn't
  used because the user is trusting us not to give them untrusted data. Hence
  the SanitizedResponse class.
Using correct data types in SanitizedResponse
authenticate_server doesnt mutate the response, linting with pep8.

Theres no reason to retreive a response from authenticate_server. Under no
scenarios will it actually modify the response. It serves only as a true/false
check for authentication.