Remove the unnecessary SessionRedirectMixin class.
Add new is_redirect property to requests.Response.

This property allows applications that disable automatic redirect
processing to detect, for each response, whether or not the library
can automatically process it as a redirect.
Overhaul redirection resolution for reliability and easier-to-use manual mode.

User visible changes:

* New exception type, InvalidRedirect, will be thrown if the URL
  provided in a redirection (after converting relative to absolute) is
  malformed.  (Formerly one would get a bare ValueError,
  AttributeError, or UnicodeError, depending on the problem.)
* Response.history is now always a list, never a tuple (issue 1898)
* Each response in a redirection chain has a properly-filled-out
  history property containing all of the previous responses.
* New Session method 'resolve_one_redirect' takes a response already
  known to be a redirect, fires a new request for the destination of
  the redirect, and returns the response.
* Session.resolve_redirects now ignores all of its arguments other
  than the response object; the values provided in the original send()
  call are used.

Internal changes:

* Cache the full set of keyword arguments to Session.send on the
  PreparedRequest, so they don't need to be provided again to
  Session.resolve_redirects.
* The part of Session.send that Session.resolve_one_redirect
  needs is now a separate method, _send_internal.
* Session.resolve_redirects is now just a thin wrapper around
  Session.resolve_one_redirect.
* Rely more on urlparse.urljoin to handle relative URLs in
  a redirection.